Subject | Re: [firebird-support] order by using parameter of stored procedure |
---|---|
Author | Ann Harrison |
Post date | 2012-03-20T17:54:33Z |
On Tue, Mar 20, 2012 at 12:48 PM, Tomasz Tyrakowski <
t.tyrakowski@...> wrote:
regardless of the size of the result set. In general, even though sort is
an NLogN operation and random access to a data page is a KN operation, the
size of K completely overwhelms the LogN. Accessing data in storage order
then sorting in memory (generally) is faster than bouncing all over the
disk to find records in index order. The exceptions are when data is
stored in index order or when you have a LIMIT n (First n) clause that
causes the query to return a small fraction of the records that would be
sorted.
Good luck,
Ann
[Non-text portions of this message have been removed]
t.tyrakowski@...> wrote:
> > How to best implement ORDER BY of a query when the field by which toReturning the results and sorting them in the query is good advice,
> > order, is given as stored procedure input parameter?
>
> If the data set returned by the procedure is not very large, return all
> relevant fields from the procedure and use order by in the query
> selecting from the procedure (it won't use indices, so it's only
> suitable for reasonably small number of records). O
regardless of the size of the result set. In general, even though sort is
an NLogN operation and random access to a data page is a KN operation, the
size of K completely overwhelms the LogN. Accessing data in storage order
then sorting in memory (generally) is faster than bouncing all over the
disk to find records in index order. The exceptions are when data is
stored in index order or when you have a LIMIT n (First n) clause that
causes the query to return a small fraction of the records that would be
sorted.
Good luck,
Ann
[Non-text portions of this message have been removed]