Android : bulk insert leads to 'ESQLiteError' with message 'disk I/O error'.

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
swierzbicki
Posts: 451
Joined: Wed 19 Jan 2005 09:59

Android : bulk insert leads to 'ESQLiteError' with message 'disk I/O error'.

Post by swierzbicki » Mon 30 May 2016 17:42

Hello,

Bulk insert leads to 'ESQLiteError' with message 'disk I/O error'. This is specially happening when inserting a large amout of data (107 000 inserts).

I've tried to insert with and without a transaction but nothing change.

When no transaction is used, I'm still getting error message (after the disk I/O error) 'cannot rollback - no transaction is active'.

FredS
Posts: 272
Joined: Mon 10 Nov 2014 17:52

Re: Android : bulk insert leads to 'ESQLiteError' with message 'disk I/O error'.

Post by FredS » Tue 31 May 2016 04:23

Yeah, I swear something changed but couldn't narrow it down 'til today. I was sure FB3 was within a second or so of SQL-Server during some large Azure test a few weeks ago, but not now..

Essentially while using bulk inserts with Firebird 3 the larger the array size the slower the inserts.
An example is 20 record insert loops repeating for +1400 records with an array size of 20 takes <1 second still not as fast as the same code with SQL Server which is just a dozen or so ms.

But when you increase that array size to 2k you get 9 seconds, keep in mind same insert batch and same amount of records in a loop.

Increase it to 20k and you can go for coffee, at 200k it blows up.
Each of these tests work fine with SQL Server using UniDac, then I ran it using FireDac and all works fine even with the 200K array size the whole spiel took +700ms.

Not sure but if FD works using the same snapshot of FB3 (fbclient.dll) then there is a good chance its not FB3..

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: Android : bulk insert leads to 'ESQLiteError' with message 'disk I/O error'.

Post by MaximG » Tue 31 May 2016 12:10

Thank you for the information. We will check the behavior of UniDAC on inserting a large number of records with the Batch Insert method on the Android platform. We will inform you about the results shortly.

Post Reply