Subject RE: [firebird-support] How to speed up sorting
Author Svein Erling Tysvær
>I've a table with 150 000 records.
>
> DEL = 1 - about 100 records
> DEL = 0 - about 149 900 records
>
> What can I do to speed up this query ? Without ORDER it runs in about 1.5 s.

Returning only 500 records, it is probably better not to use the index for ANAME. You might change your query to:

SELECT
ID, ANAME
FROM MYTABLE
WHERE ANAME LIKE '%TEST%'
AND DEL+0 = 0
ORDER BY ANAME||''

I don't know how much it will improve, I was surprised about you saying that it was 100 times quicker without the ORDER BY. Are you sure that you measured how much longer it took to return the entire result set, and not just the first few rows? I would expect

SELECT
count(*)
FROM MYTABLE
WHERE ANAME LIKE '%TEST%'
AND DEL+0 = 0

to return quicker than your query could possibly finish (of course, transferring 500 integers and 500 varchar(250) takes longer than transferring one integer, the rest of the work should be similar).

HTH,
Set