last_insert_rowid's performance is bad.
Submitted by Massimo Cora'
Assigned to mal..@..db.org
Link to original bug (#623891)
Description
After so much benchmarking and hacking on symbol-db population flow trying to understand why it was so slow, I probably found the reason.
last_insert_rowid information retrieved with a gda_connection_statement_execute_non_select () statement is the bottle neck.
When libgda retrieves last_insert_rowid information it becomes 10x times slower than SQLite native apis! 7.70 vs 0.80
When the sqlite3_last_insert_rowid (db) is used on sqlite side it's performance grows up only for some milliseconds, but outperforms libgda in any case.
Please check the benchmark programs here http://git.gnome.org/browse/anjuta/tree/plugins/symbol-db/benchmark/libgda?h=sdb-core-trans and http://git.gnome.org/browse/anjuta/tree/plugins/symbol-db/benchmark/sqlite?h=sdb-core-trans
to have some tests. you don't need to compile Anjuta to have them working, you can just compile them out of the box.
Version: 4.1.x