создаём и заполняем такую таблицу:
CREATE TABLE MYTABLE (
ROWID INTEGER NOT NULL,
DT TIMESTAMP,
DATA VARCHAR(100),
CONSTRAINT PK_MYTABLE PRIMARY KEY (ROWID)
);
CREATE INDEX IDX_DT ON MYTABLE (DT);
и делаем такой запрос
SELECT * FROM MYTABLE
WHERE DT BETWEEN '1.1.2009' AND '1.6.2009'
ORDER BY ROWID
Если индекс IDX_DT включен, IB Expert показывает, что план запроса выглядит так:
PLAN (D ORDER PK_MYTABLE),
и что было выполнено 3 тыс. чтений (indexed reads) из таблицы.
Если индекс выключить, IB Expert рапортует уже о 800 тыс. чтений (соответственно, время выполнения подросло до 4 сек), но план запроса выглядит точно так же.
По идее, планы должны различаться (а значит, FB возвращает неправильный план выполнения), или я неправ?