Hello, Dmitri!
You wrote  on Wed, 21 Jun 2006 17:29:44 +0400:

 DK> Hello, Yuri!
 DK> Yuri Grabar wrote: > Дим, я что-то не понимаю при чем тут "на глазок". 
По
 DK> селективности индекс по
 ??>> DOC_DATE почти в 100 раз выгоднее, чем по DOCUMENT_ID при прочих
 ??>> равных (гистограмм-то нету). По твоим выкладкам 20% сводит его к
 ??>> "почти в 5 раз лучше".

 DK> нет. выборка на равенство в среднем приведет к выборке 1/30 записей.
 DK> А between оценивается как выборка 1/5 записей. То есть between
 DK> хуже равенства, даже когда селективность отличается на 2 порядка.
 DK> Причем, согласно моим подсчетам, between в твоем случае будет
 DK> эффективнее равенства только если
 DK> (при среднем распределении данных)

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

Да, именно так. И именно поэтому я этот индек и делал. Большая часть 
запросов выполняется в пределах месяца, а то и недели, т.е. в пределах 1/60 
объема данных. Но при таком "умном" оптимизаторе смысл в индексе пропадает 
вообще... Переход на FB 2.0 откладывается на неопределенный срок - 
перешерстить >900 процедур на сервере и запросы в программах не 
представляется возможным. Я почему-то ожидал что FB 2.0 будет по крайней 
мере не хуже FB 1.5.

 ??>> Тем не менее индекс по DOCUMENT_ID (в 5 раз более "плохой")

 DK> да. с этим никто не спорит. он на самом деле в 70 раз
 DK> "более плохой", а не в 5.

Это меня переклинило :) 20% -> пятая часть, значит в пять раз :))

-- 
With best regards, Yuri Grabar. 



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

Ответить