On 12 sep. 2013, at 07:20, "James K. Lowden" <jklow...@schemamania.org<mailto:jklow...@schemamania.org>> wrote:
On Tue, 10 Sep 2013 12:58:21 +0000 Harmen de Jong - CoachR Group B.V. <har...@coachr.com<mailto:har...@coachr.com>> wrote: I think the way I wrote our timings were not that clear, since they are definately exponentially. The numbers from my previous post refer to the multiplier between the test cases. Just to make it clear, here follows the same tests, but then expressed in msec of total time per test. 500 tables - 10 msec in total 1000 tables - 25 msec in total 5000 tables - 298 msec in total 10000 tables - 985 msec in total I don't know what you mean by "exponentially". 500 .020 ms/table 1000 .025 ms/table 5000 .0596 ms/table 10000 .0985 ms/table Linearly, I'd say. It may help to look at it graphically. Well, actually it is neither of both (calling it exponentially was a mistake on my side). The increase in time is polynomial where we would expect an increase that is more or less linearly. http://www.schemamania.org/sqlite/graph.pdf we cannot find anything in there that would explain an exponential groth in time. I doubt you will. Well, the non-linear increase in time (polynomial increase) is there, so sooner or later we will find an explanation. In the mean time we already traced it down further by doing some profiling. You will find the result of this profiling (where time per function is expressed in percentage of the total time taken) here: http://www.coachrdevelopment.com/share/callstack_tree.html This shows most time is spend on sqlite3CodeRowTriggerDirect (the second one where it loops though FK's that point to B). However, now the question why this piece of code seems to be causing a polynomial increase still remains. Next question is if it can be improved for use cases with a large number of tables. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users