Performance advantage of transactions

J Jon Tara 3 years 6 months ago
1 1 0

This was an aside in an unrelated post, and I felt it deserved it's own!

Did you know that using transactions both protects against partial updates, as well as bringing a HUGE performance boost? Make sure to use transactions whenever you create or modify a bunch of records. It's especially effective when seeding a database from e.g. some downloaded data. And also especially so when you are adding records to fixed-schema tables with a lot of indices.

I did some simple experiments today inserting records into a narrow (few fields) (but heavily-indexed) table. Since I only inserted 200 records, it is probably not yet enough records to show the true difference, but... it certainly is significant!

iPhone 5S

Transaction: 150 mSec, or 0.75 mSec/record
No Transaction: 3500mSec, or 17.5mSec/record

Using a transaction was 23 times faster than not using a transaction.

Note that Rhom always uses a transaction internally (you can nest them) but that internal transaction is only for whatever single call you make to Rhom.

FWIW, times on OS X (iOS simulator):

Transaction: 40mSec, or 0.2mSec/record
No transaction: 980mSec, or 4.9 mSec/record
24.5 times faster, so pretty consistent

You can find the code I used here:

Please Register or Login to post a reply

1 Replies

M Mark Nongkhlaw

This is off my head, but I remember Rob Galvin did a tech talk that included transactions a few months (years ?) back.

CONTACT
Can’t find what you’re looking for?