Since we're just in the progress of getting V3 finished to Gold status, we've been looking into tweaking the engine. In this process we were wondering how V3 actually measures up to older versions of NexusDB. We've also included NexusDB V2.08, which is imminent at the time of writing this.

As representative mix of data we simply chose the current core SQL tests. These are the tests that are run after every single fix/change to the SQL engine as well as automated every night. All tests are run on Delphi 2007, with NexusDB V3 also run on Delphi 2009. This core suite consists of 184 tests which have a run time from less than 5ms up to 65 seconds (set as timeout). The queries cover the whole range from simple queries, to aggregates, to inner/outer joins, inserts, updates and triggers. 50 of these queries have a run time above 50ms in NexusDB V3 on D2009, and after trending all the data we can confirm that these 50 are representative for the whole suite.

The following chart shows the run time of these queries normalized to the longest running time as 100% - thus the shorter the bar, the better :)

If you want to see the table with the timings in ms then please scroll further down.

If you don't see a bar on the graph for a version (or a -1 in the table) then this means that either the returned result was wrong, the query produced a parser or runtime error or the query timed out.

Of course we're trying to hunt down the few cases where any V2 outperforms V3 and fix that up before release, after all we want V3 to be the best we have in all areas.

Looking at the chart, overall I think I can say to the team: "We've done good boys!"



And here's the base data for the chart, a green background indicating that this is the fastest run time:

SQL V3 (D2007) V3 (D2009) V3 (D2009)
no stringcheck
V 2.08 V2.07.06 V2.05
0050.sql 93 109 94 110 -1 -1
0069.sql 561 468 468 670 -1 -1
0075.sql 967 999 983 3192 -1 -1
0089.sql 78 62 78 -1 -1 -1
2022.sql 1030 1108 1108 1304 1357 1778
2093.sql 62 63 62 78 78 62
2099.sql 109 94 94 105 110 171
2106.sql 1825 2028 1887 -1 -1 2839
2131.sql 2262 2559 2590 2808 2840 10405
2138.sql 4899 5195 4742 5959 6677 -1
2139.sql 45428 54273 45318 58953 61168 -1
2140.sql 234 47 47 47 47 -1
2151.sql 203 234 203 249 234 640
2159.sql 4555 5070 4586 5688 5756 -1
2162.sql 4883 5226 4836 6302 6411 13635
2162_2.sql 4414 4633 4321 5117 5211 7567
2162_3.sql 4508 4758 4258 5273 5445 8330
2162_4.sql 2559 2777 2481 2924 2964 5101
2162_5.sql 156 156 141 171 188 -1
2172.sql 62 78 63 63 62 -1
2176.sql 1825 1981 1950 2449 2605 1982
2178.sql 375 390 390 453 421 639
2179.sql 94 93 94 94 93 -1
2180.sql 343 328 327 406 406 874
2194.sql 1280 1420 1373 1585 1653 2012
2234.sql 124 125 125 125 141 -1
2237.sql 78 78 78 93 94 -1
2252.sql 827 874 843 858 858 956
2257.sql 218 234 234 296 296 1155
2283.sql 18221 18814 18361 21997 22168 -1
2310.sql 671 764 702 749 749 5335
2317.sql 452 453 437 499 530 1950
2143_2.sql 3261 3541 3401 3853 3931 9157
2389.sql 140 140 156 172 187 -1
2148.sql 15600 16583 16365 17492 18985 -1
2443.sql 515 452 437 577 578 1576
2451.sql 936 999 1045 1342 1341 -1
2470.sql 7800 8097 8299 9254 9173 -1
2503.sql 19282 22495 20296 23275 23696 35054
2546.sql 125 109 125 125 124 -1
2554.sql 219 219 218 234 234 -1
2564.sql 109 78 93 109 110 78
2569.sql 78 78 94 93 93 94
2572.sql 436 468 468 539 531 -1
2577.sql 78 94 78 78 78 -1
2584.sql 4898 5086 5241 5631 5725 -1
pt1.sql 3338 3650 3479 3981 4009 -1
AppendixB_Q1.sql 2324 2574 2605 2839 2855 10452
AppendixB_Q11.sql 1763 1919 1810 2121 2168 -1
AppendixB_Q13.sql 328 327 359 390 390 530
AppendixB_Q3.sql 63 62 78 94 78 2761
AppendixB_Q5.sql 624 671 655 733 733 1092
AppendixB_Q7.sql 624 624 686 748 749 1216
AppendixB_Q9.sql 593 624 656 749 733 1326
in_exists_test.sql 1701 1826 1856 2122 2200 30249
Home | Community | Blogs | Hannes' Blog