C # System.Data.SQLite Designer Code - PullRequest
       17

C # System.Data.SQLite Designer Code

0 голосов
/ 07 января 2010

Я возился с SQLite Designer в Visual Studio 2008 и заметил, что когда я использую сгенерированные операторы Insert / Update, они работают очень медленно.

Пример: у меня есть таблица данных счетыре столбца и 5700 строк потребовалось ~ 5 минут, чтобы вставить данные в таблицу базы данных

Однако я написал собственное подключение к базе данных и методы вставки, используя параметры и одну транзакцию, и те же 5700 строк были вставлены в1 секунда.

Почему сгенерированный код такой медленный и какая польза от его использования?

Спасибо.

Натан

Ответы [ 2 ]

0 голосов
/ 04 апреля 2010

Я читал, что поведение по умолчанию в SQLite заключается в переносе каждого оператора вставки в транзакции, что, я думаю, объясняет поведение, которое вы видите. Когда SQLite Engine создает операторы Insert, это занимает много времени, а когда вы пишете sql, он выполняется очень быстро.

http://www.sqlite.org/faq.html#q19

0 голосов
/ 07 января 2010

, если я правильно понял, что оператор вставки встроен в код, и это нормально, что выполнение займет много времени ... его нужно скомпилировать, обработать, превратить в CLR и т. Д. В базе данных это занимает меньше времени, потому что эта процедура, когда вы вызываете ее из кода, уже прошла через эти шаги. Всегда лучше и быстрее использовать процедуры непосредственно из баз данных, чем записывать их в коде позади.

...