Subject Re: [firebird-support] index use when using order by
Author Mark Rotteveel
On 2019-09-18 06:46, liviuslivius liviuslivius@...
[firebird-support] wrote:
> Hi
>
> your problem is that you have ascending index, which is not usable in
> descending queries. You need to create descending index and it then
> can be used in e.g. max queries. Ascending index is used in min
> queries and order by xx asc.

This is in my opinion an annoying limitation of Firebird. The indexes
are theoretically bidirectional, but aren't used that way because of how
index pages are written. The write strategy makes it possible for a
reverse read to miss index pages when the index is modified (page split)
while it is read. I think there must be a strategy that can be used to
address that.

In other database an 'ascending' index can also be used for descending
reads, there ascending and descending are applied to individual columns
to create different key orderings in the index.

Mark