Hello, Horsun!
You wrote  on Thu, 29 Jun 2006 09:56:18 +0300:

 HV> "Yuri Grabar" ...

 ??>> Предположим, константа равна 0.2. Предположим, что есть два индекса,
 ??>> теоретически подходящих для использования - IDX1 с селективностью 0.2
 ??>> и IDX2 с селективностью 0.002 (не придирайся к конкретным значениям,
 ??>> просто пример). Индекс IDX2 явно предпочтительнее индекса IDX1 (грубо
 ??>> говоря в 100 раз лучше). Вычисляем по сегодняшнему алгоритму
 ??>> результирующую селективность: для IDX1 она будет 0.36, для IDX2 -
 ??>> 0.2016.

 HV>     И индекс IDX2 остался более предпочтительным.

Среди этих двух - да. Среди всех возможных - далеко не факт.

 ??>> Смотрим сколько потеряли
 ??>> селективности индексов после ее ухудшения:

 HV>     Зачем ?

Просто. Ради справедливости :)

 ??>> В результате такого приближения оптимизатор может для
 ??>> выполнения выбрать намного более плохой индекс только потому, что там
 ??>> сравнение идет на равно, а для более лучшего индекса на between.

 HV>     И будет прав. Ибо на равно выберется записей меньше, чем на
 HV> between, исходя из имеющейся у него информации

Угу... Это ярко проявилось в том примере, с которого все и началось - 
_проигрыш_ был в сотни раз. Во всем. Причем, скорее всего, не "исходя из 
имеющейся у него информации", а из-за выбранного способа ее интерпретации.

 ??>> Я не согласен с существующим алгоритмом ухудшения селективности.

 HV>     Предложи свой. Только обоснуй,
Не могу. Недостаточно данных. Если бы мог - просто сделал исправление в коде 
сервера и пересобрал. То, что навскидку было бы хорошо (чисто интуитивно, 
без доказательств) было тобой с Димой с ходу отвергнуто, причем, тоже без 
каких-либо доказательств. Вы их и не обязаны мне предоставлять, но тогда и 
отвергать с ходу тоже как-то нехорошо...

 HV>  а не пальцем в небо тыкай

Выбранный на сейчас способ тоже сильно смахивает на "пальцем в небо". 
Конечно, может и есть какие-то исходные предпосылки и тесты, которые мне не 
известны. Просто говорить, что "в Оракле аналогичный коэффициент столько-то" 
скорее всего тоже нельзя, потому что в Оракле это не единственный критерий 
оптимизации. И промах в этом направлении может быть скомпенсирован теми же 
гистограммами. Но в FB-то их нет...

 ??>> А уж первоначальный выбор коэффициентов в 0.2 и 0.5 для меня
 ??>> вообще непонятен.

 HV>     Я плакаль

А я - просто рыдал, глядя на тормозящую на простейших запросах базу... :( 
Соберем слезы и посмотрим у кого больше? ;)

-- 
With best regards, Yuri Grabar. 



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

Ответить