I'm continuing to look into performance improvements w/ Derby, and have
noticed that a large portion of time (11%) is spent in
EmbedStatement.executeQuery. I found this strange, in that I have turned on
the prepared statements (safe) plugin globally for all models. The only
place I could see executeQuery being called for derby is in last_insert_id.
But especially with tests I'm running, I'm not doing that many inserts, so
I couldn't figure out why it was calling it so much.
Looking in the logs, it looks like last_insert_id is being called when
there is no insert happening:
[2012-07-24 17:28:33] DEBUG [MDM] - (0.001000s) SELECT * FROM "COMMANDS"
WHERE (("COMMANDS"."DEVICE_ID" = 50 ) AND ("DELIVERED_AT" IS NULL))
ORDER BY "CREATED_AT" ASC FETCH FIRST 1 ROWS ONLY
[2012-07-24 17:28:33] DEBUG [MDM] - (0.000000s) SELECT IDENTITY_VAL_LOCAL()
FROM sysibm.sysdummy1
[2012-07-24 17:28:33] DEBUG [MDM] - (0.000000s) EXECUTE smpsp_3 (SELECT *
FROM "COMMANDS" WHERE ("ID" = ?) F ETCH FIRST 1 ROWS ONLY); [7598]
As I write this, I realize the large number of executeQuery calls is
probably related to the prepared statements which are EXECUTE statements,
probably via executeQuery. Is that correct? Even still, can you explain
this IDENTITY_VAL_LOCAL() call in this context?
Thanks.
--
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/sequel-talk/-/SAzRlHvoxZsJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sequel-talk?hl=en.