"Yuri Grabar" <[EMAIL PROTECTED]> wrote: > > Ты вроде как писал, что нет вообще никакого расчета - _всегда_ > используется > селективность 0.2
Ладно, заменим слово "расчет" на "оценку" :-) а) FB2 оценивает кол-во попаданий в BETWEEN как: <кол-во записей> * <коэф>. б) вариант от критиков: <кол-во записей> * <селективность> / <коэф>. или другими словами: а) в N раз меньше кол-ва записей в таблице б) в N раз больше, чем вернет равенство по этому же столбцу Чем второй вариант концептуально правильнее? > 454842 из общего количества 1003575, т.е. практически половина. Только при > чем тут это? В сервере же нет гистограмм Вот именно что нету. И оптимизатор верит статистике и считает этот индекс хорошим. Как минимум лучше, чем по дате (с учетом BETWEEN). Т.е. проблема на самом деле комплексная - сочетание более пессимистичной политики оптимизатора и "перекошенного" поля DOCUMENT_ID. Сравни время выполнения при DOCUMENT_ID = 1 (или что там более уникально) с двумя планами: - PLAN (D INDEX (FK_DOCS_FROM, DOCS_IDX_DATE)) - PLAN (D INDEX (FK_DOCS_FROM, FK_DOCUMENT_ID)) Будет ли второй вариант медленнее? -- Дмитрий Еманов --~--~---------~--~----~------------~-------~--~----~ -~----------~----~----~----~------~----~------~--~---

