Hello, Ded!
You wrote  on Fri, 23 Jun 2006 12:34:16 +0400:

[сорри, пропускаем...]

 D>     Вот. Тоже потеоретизировал.

Хорошо потеоретизировал, логично по крайней мере. :) И я примерно так же 
теоретизировал, но не так доходчиво...

 D>  Только вот какая фигня получается :) Не воспроизводится у меня вся эта
 D> канитель на 12654 билде RC2 :-D SC_LST_DATEREG INDEX ON SC_LST(DATEREG)
 D> RDB$FOREIGN862 INDEX ON SC_LST(SCTO)

 D> select count(*) from sc_lst where scto=1 and datereg between
 D> '01.01.2005' and '01.02.2005'

 D> PLAN (SC_LST INDEX (RDB$FOREIGN862, SC_LST_DATEREG))

Изначально было не совсем так... Во-первых, зависит от ODS - должна быть 
11.0 (какая у тебя не знаю, просто уточняю. На ODS 10.1 не так работает), а 
во-вторых, запрос должен быть в виде

select count(*)
from sc_lst
where scto=1
    and datereg between :DATE_FROM and :DATE_TO

Дело в параметрах. Из программы-то можно и явно вписать даты, а как быть в 
процедуре? И было там в where еще одно поле с параметром. По тому полю был 
тоже был индекс с хорошей (относительно) селективностью.

-- 
With best regards, Yuri Grabar. 



--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить