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. --~--~---------~--~----~------------~-------~--~----~ -~----------~----~----~----~------~----~------~--~---

