> ExecSort calls psort() to do the work. psort() uses a Knuth algorithm.
>
> I removed the psort() call from ExecSort, and the execution time was:
>
> Select with order by using psort(): 0.30
>
> Select with order by NOT using psort(): 0.07
>
> Now of course, not using psort() causes the data not to be sorted, but
> there must be some inefficienty if sorting one row takes 0.23 seconds on
> a PP200 with 64MB of RAM. I suspect the other 0.06 seconds is caused by
> the creation of the temp table and moving the rows around.
It looks like psort()'s use of disk files to do the sorting is causing
the slowdown, with the multiple create's and unlink's. I am going to
modify psort() to use memory buffers instead of disk files for sorting
small SELECT results. psort() is only called by ExecSort, which is used
by ORDER BY's.
Permission to put this in 6.1p1?
- --
Bruce Momjian
maillist@candle.pha.pa.us
------------------------------