Isn't that exactly the same as the default mode for SQL Server?

On 29 May 2011 12:52, Joseph Cooney <joseph.coo...@gmail.com> wrote:
> I wouldn't bother e-mailing the SQLite folks. This is by design, and is a
> well known behaviour with SQLite. From memory if you don't explicitly have a
> transaction then one gets created for each operation, which slows things
> down.
>
> Joseph
> On Sun, May 29, 2011 at 10:27 AM, Greg Keogh <g...@mira.net> wrote:
>>
>> Here’s a serious heads-up for you:
>>
>> Last night I was bulk migrating about 200000 rows from my old SQL Express
>> database into my new SQLite one. I wondered why it took about 10 minutes to
>> insert 1000 rows into one table, and when it got to the 60000 row table I
>> was curious about how long that would take. So I left the machine running
>> while we met friends for dinner at a Turkish restaurant. Four hours later
>> it’s still running the same step. I noticed that a journal file was
>> flickering madly in Windows Explorer, so I guessed it was some transactional
>> problem.
>>
>> My code is plain ADO.NET like this:
>>
>> using (SQLiteCommand ...)
>> {
>>     using (SQLiteCommand ...)
>>     {
>>
>>         for (...)
>>         {
>>
>>             ExecNonQuery(... INSERT ...)
>>
>>         }
>>     }
>> }
>>
>>
>> This morning a few web searches hinted that I had to use PRAGMA
>> synchronous = OFF. That’s too weird, so I put a using DbTransaction around
>> the bulk inserts and now the whole migrations runs in 10 seconds.
>>
>> I’m going to cc a copy of this post to the authors of SQLite, as this is a
>> shocking gotcha. I’m utterly gobsmacked by the poor performance of the
>> inserts without a transaction around them.
>>
>>
>> Greg
>
> --
>
> w: http://jcooney.net
> t: @josephcooney
-- 
Regards,
Mark Hurd, B.Sc.(Ma.)(Hons.)

Reply via email to