Konstantin R. Beliaev wrote:

Есть таблица
CREATE TABLE CLIENT_FIX (
    NUM        INTEGER NOT NULL,
    DATE_      DATE NOT NULL
/*дальше не важно*/
);
CREATE DESCENDING INDEX SF_CLIENT ON CLIENT_FIX (DATE_, NUM);
в таблице 12 000 000 записей.

А индекса по NUM нет часом?

Теперь добавим условие:
select first 1 * from client_fix where num>0 order by date_ desc
Plan
PLAN (CLIENT_FIX ORDER SF_CLIENT) - план тот же

На самом деле, план другой. И 2.0 это показывает корректно.
Я об этом писал в статье по методам доступа.

FB 1.5.3 CS

Выбрось каку :-)

ПОЧЕМУ при добавлении условия, которому уже удовлетворяет первая попавшаяся запись, сервер продолжает считывать таблицу с диска?

Он индекс читает, а не таблицу.


--
Дмитрий Еманов

Ответить