Hello, Dmitry!
You wrote  on Tue, 27 Jun 2006 13:46:02 +0400:

 DY> "Yuri Grabar" <[EMAIL PROTECTED]> wrote: > > Вычисление 
результирующей
 DY> селективности происходит немного станно...  При
 ??>> изменении исходной селективности индекса от 0 до 1 вычисленная
 ??>> результирующая селективность изменяется от 0.2 до 1.0.

 DY> Так точно. Вот только заметно отличаться от 0.2 она будет только при
 DY> очень низкой селективности индекса. При 0.1 мы получим 0.28, при 0.5
 DY> результат будет 0.6. Но это уже ооочень плохие индексы :-)

Только вот, например, очень "хороший" индекс с селективностью в 1 
миллиардную все равно получит селективность 0.200000001. Т.е. , 
результирующая селективность, какой бы ни была "хорошей" селективность 
исходного индекса, все равно будет хуже этой константы. Получается, что чем 
хуже исходный индекс, тем меньше он "теряет в весе" по сравнению с более 
хорошими индексами. Вот это и смущает.

 DY>  Если такой будет один, то он будет использован. Но если будет лучший,
 DY> то на этот забъет даже 1.5.
 DY> Иными словами: да, там действительно не совсем константа, если строго
 DY> подходить. Но на практике это на жизнь не влияет.

 ??>> Не должна ли
 ??>> результирующая селективность вычисляться хотя бы:
 ??>>
 ??>> scratch[i]->selectivity = selectivity + selectivity * factor;

 DY> Не должна. См. всю предыдущую дискуссию :-)

 DY> P.S. В официальный RC3 войдут более оптимистичные оценки (а-ля Оракл).
 DY> Скорее всего, больше меняться ничего не будет.

Ну, установленные на сегодня значения в 0.025 для between и 0.05 для 
больше/меньше, конечно, лучше чем были, но все-таки как-то это 
неправильно... Сам алгоритм вычисления результирующей селективности не очень 
понятен.

-- 
With best regards, Yuri Grabar. 



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

Ответить