Updated results against current trunk:

CPU Time: user 82.009726 sys 129.636831

I rerun the profiler and looked at the results. Most of them looked
sensible, but one thing still struck me. Once the new index is created
in the VDBE Sorter it gets copied back into the new Btree using a loop
with the following OPCodes:

  sqlite3VdbeAddOp2(v, OP_SorterData, iSorter, regRecord);
  sqlite3VdbeAddOp3(v, OP_IdxInsert, iIdx, regRecord, 1);
  sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);

The OPFLAG_USESEEKRESULT is no-op in this case since OP_IsUnique is
never used in the merge-sort branch of code. OP_IdxInsert always seeks
for the new Btree row in the resulting tree. Couldn't we exploit the
fact that the rows are already sorted to construct the Btree faster?

Best regards,
Filip Navara
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to