Tja, ik kan me een beroerdere performance voorstellen, maar het zegt misschien niet zoveel. Het hangt ook af van de componenten (bijvoorbeeld een grid) die aan die componenten hangen, en hoe je die appends uitvoert.
Je zou eens kunnen proberen om een samengesteld insert statement te maken. SQLite ondersteunt schijnbaar geen insert met meerdere value-lists, maar wel losse selects. Je zou dus een statement kunnen maken dat er ongeveer zo uitziet.
SQL Code:
INSERT INTO Tabel(VeldA, VeldB)
SELECT 'WaardeA1', 'WaardeB1' UNION ALL
SELECT 'WaardeA2', 'WaardeB2' UNION ALL
SELECT 'WaardeA3', 'WaardeB3' UNION ALL
SELECT 'WaardeA4', 'WaardeB4' UNION ALL
SELECT 'WaardeA5', 'WaardeB5' UNION ALL
SELECT 'WaardeA6', 'WaardeB6' UNION ALL
SELECT 'WaardeA7', 'WaardeB7' UNION ALL
SELECT 'WaardeA8', 'WaardeB8' ....
Daarnaast kun je eens kijken of je verschil meet als je expliciet een transaction opent voor deze 1000 inserts.
Even als test: Ik heb een tabel gemaak waarin ik 1000 keer de waarde 1 insert. Dat lukt met losse inserts in 0,14 seconde. Als ik er een insert met een select van maak, zoals in bovenstaand voorbeeld, dan lukt het in minder dan 10 ms (krijg 0 terug, maar da's een afronding).
De testdatabase is Oracle, en ik herhaal de test wel een aantal keer omdat zo'n query de eerste keer even geparsed, geïnitialiseerd en geoptimaliseerd wordt, waardoor het een paar tiende sec langer duurt. Bij 8 seconden kom ik niet in de buurt, maar het is misschien ook niet helemaal vergelijkbaar qua database..
Bookmarks