"Yuri Grabar" <[EMAIL PROTECTED]> wrote:
>
> where DOC_DATE between ?DF and ?DT
> and FROM_ID = ?FROM_ID
> and DOCUMENT_ID = 2
>
> FROM_ID и DOCUMENT_ID - внешние ключи, по полю DOC_DATE есть индекс.
> Селективности по индексам:
>
> по DOC_DATE - 0,00048169
> по FROM_ID - 0,00017614
> по DOCUMENT_ID - 0,03333333
С точки зрения стоимости, выигрывает DOCUMENT_ID.
> Количество индексных чтений из таблицы порядка 20 тыс с соответствующими
> тормозами... Заставить оптимизатор использовать индекс по DOC_DATE удалось
> только при записи запроса в таком виде:
>
> select count(*)
> from DOCS
> where DOC_DATE between ?DF and ?DT
> and FROM_ID+0 = ?FROM_ID
> and DOCUMENT_ID+0 = 2
>
> в любом другом варианте индекс по DOC_DATE не используется вообще.
Даже так:
where DOC_DATE between ?DF and ?DT
and FROM_ID = ?FROM_ID
and DOCUMENT_ID+0 = 2
?
--
Дмитрий Еманов
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---