Ускорение работы с базой данных (c# .net2.0)

Александр16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
09.12.2011

Есть следующий код:

var list = new List();

OrderedDictionary where = new OrderedDictionary();

where.Add("processed", 0);

dtab = db.getRowsWhere("history", where);

int c = dtab.Rows.Count;

for (int i = 0; i

{

OrderedDictionary results = new OrderedDictionary();

results.Add("profile", "site.com");

results.Add("url", "site.com/page" + i.ToString() + ".html");

results.Add("processed", "0");

list.Add(results);

}

db.insertAllRowsToTable("history", list, new List(), DBkeyParams);

Он использует функцию моей надстройки над sqlite insertAllRowsToTable, чтобы вставить в базу N записей (или обновить N старых записей). Проблема заключается в том, что если N = 10000, то он работает минимум 22 секунды, а если N = 100000 (или если в базе уже хотя бы 50000 записей присутствует), то код вообще зависает. Мне нужно решение для работы с базой данных в c# из приложения под .NET2.0 , которое будет быстро и без зависаний работать с базами хотя бы до 1000000 записей (а запись в базу 100000 записей не должна превышать по времени 5 минут).

Для реализации я предоставлю точное описание (и сам код) уже существующих функций моей надстройки). Реализовать можно с помощью sqlite, либо с помощью другого решения. ВАЖНО чтобы данные функции абсолютно автономно работали в рамках приложения написанного на C# под .NET2 (то есть для использования БД, у пользователя на компьютере нет необходимости устанавливать дополнительные программные комплексы, а достаточно всего лишь библиотеки, идущей в составе моей программы).