Hello, Dmitry!
You wrote  on Wed, 21 Jun 2006 14:53:03 +0400:

 DY> "Yuri Grabar" <[EMAIL PROTECTED]> wrote: > > Эээ... Разве не чем 
меньше - тем
 DY> лучше?
 DY> Селективностью можно оценить кардинальность выборки только на
 DY> равенство. Для больше/меньше/между эта цифра не дает ничего. Поэтому
 DY> сервер использует свои коэффициенты. Для больше/меньше - 50%, для между
 DY> - 20%, для стартинг - 1%. Цифры выбраны на глазок, всех удовлетворить
 DY> ими не выйдет. Но без гистограмм - это максимально корректный вариант.

Дим, я что-то не понимаю при чем тут "на глазок". По селективности индекс по 
DOC_DATE почти в 100 раз выгоднее, чем по DOCUMENT_ID при прочих равных 
(гистограмм-то нету). По твоим выкладкам 20% сводит его к "почти в 5 раз 
лучше". Тем не менее индекс по DOCUMENT_ID (в 5 раз более "плохой") 
используется в первую очередь. Почему FB 1.5 и FB 2.0 на ODS 10.1 его 
используют (и на мой взгляд вполне правильно, по крайней мере предсказуемо), 
а FB 2.0 на ODS 11.0 ни в какую не хочет использовать индекс на DOC_DATE в 
связке с индексами на внешние ключи. Может дело в том, что DOC_DATE имеет 
тип DATE, а два другие поля INTEGER? Так тоже странно как-то...

Я могу попробовать вырезать часть базы, не знаю сохранится ли эффект, и 
прислать. Уж больно это как-то неправильно... Делать?

PS: А можно узнать, какими будут проценты для FB 1.5, FB 2.0 на ODS 10.1 и 
FB 2.0 на ODS 11.0?

-- 
With best regards, Yuri Grabar. 



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

Ответить