Hello, Dmitry!
You wrote  on Wed, 28 Jun 2006 07:47:42 +0400:

 ??>> Дим, она хуже не на 1 миллиардную, а на 0.200000001 - 1 миллиардная...
 ??>> > Можно еще в процентах посчитать, только все равно будет, что
 ??>> "лучшие" индексы проигрывают много больше, чем "худшие".

 DY> Ничего не понимаю. Ты пишешь: "хуже этой константы". Таковая у нас одна
 DY> - 0.2. Итоговая селективность - 0.20000001. Я ни фига не вижу, как, для
 DY> чего и в каких процентах лучшие индексы вдруг будут проигрывать
 DY> худшим.

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

Итого, относительно хороший индекс стал хуже в 100 раз, а относительно 
плохой - только в 1.8 раза. Кроме того, исходно индекс IDX2 был в 100 раз 
более предпочтителен, чем IDX1. После вычислений - только в 1.79 раза. Вот 
это я и говорю - чем лучше индекс, тем больше он теряет и тем ближе он 
становится к худшим. В результате такого приближения оптимизатор может для 
выполнения выбрать намного более плохой индекс только потому, что там 
сравнение идет на равно, а для более лучшего индекса на between.

 ??>> по нему никто и индекс строить
 ??>> не будет. А даже если он есть, то его всегда можно +0 погасить.
 ??>> Заставить же использовать кроме ручного планирования способа нет.

 DY> Т.е. таки rule-based оптимизатор? Нет уж, извини, не согласная я (с)

Я этого не говорил. Полностью согласен с тем, что для индексов, которые 
попадают в условия between, больше, меньше, staring нужно перед сравнением 
ухудшить селективность. Я не согласен с существующим алгоритмом ухудшения 
селективности. А уж первоначальный выбор коэффициентов в 0.2 и 0.5 для меня 
вообще непонятен.

-- 
With best regards, Yuri Grabar. 



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

Ответить