|
11.07.2011, 17:43 | #1 |
Moderator
|
Цитата:
Сообщение от AndyD
Увидеть статистику не просто, а очень просто DBCC SHOW_STATISTICS Или в разделе Статистика для таблицы в Management Studio (собственно, там выводится результат выполнения команды)
Там же (по ссылке) написано и про первый столбец для гистограммы |
|
|
За это сообщение автора поблагодарили: Logger (7). |
14.07.2011, 19:23 | #2 |
Участник
|
Цитата:
Сообщение от fed
Несколько отвлекаясь от темы, хочу заметить что я из за этого первого столбца иногда строю статистику в ручную, задавая условия фильтрации. То есть - если у меня в БД есть две больших компаний и несколько маленьких, я ручками строю две статистики по некоторым полям, задавая условия фильтрации dataareaid='co1' и dataareaid='co2' соответственно. Как-то мне показалось что сиквел в таких условиях реже промахивается с планом запроса.
Т.е. гистограммы в вашем случае должны точнее описывать распределение данных. Поэтому и оптимизатор лучше работает. |
|
14.07.2011, 22:55 | #3 |
Участник
|
Цитата:
Сообщение от Logger
Это наверно из-за того что в индексируемых полях значения как правило генерятся из номерных серий, значения в который монотонно возрастают в пределах одной компании. Конечно есть и исключения, когда несколько номерных серий пишут в один столбец. Но мы же их как правило мастером настраиваем и они имеют поэтому одинаковый префикс равный коду компании.
Т.е. гистограммы в вашем случае должны точнее описывать распределение данных. Поэтому и оптимизатор лучше работает. По-этому, о том, что, к примеру, номер журнала в его шапке является уникальным, он знает. И уточнение статистики по дополнительным компаниям ничего к этому знанию не прибавит.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Logger (3). |
15.07.2011, 08:18 | #4 |
Moderator
|
Возможно сильно разное распределение ключей по компаниям. Например у нас одна компания очень активно используется для сводного, и в ней в reqTrans полмиллиона записей, принадлежащих 7 разным планам. Из оставшихся компаний, парочка имеет только по одному плану и еще штук шесть просто не используются для сводного. Поэтому в зависимости от компании, условие dataareaid==_dataareaid && reqPlanId==_reqplanId обладают разной селективностью. Подозреваю что если у тебя есть статистика по reqPlanId без условия по коду компании, то отимизатор будет чаще промахиваться и выбирать некорректный план. (Скажем - выборку по коду плана, для тех компаний в которых он только один)...
|
|
15.07.2011, 08:51 | #5 |
Участник
|
Цитата:
Сообщение от fed
Возможно сильно разное распределение ключей по компаниям. Например у нас одна компания очень активно используется для сводного, и в ней в reqTrans полмиллиона записей, принадлежащих 7 разным планам. Из оставшихся компаний, парочка имеет только по одному плану и еще штук шесть просто не используются для сводного. Поэтому в зависимости от компании, условие dataareaid==_dataareaid && reqPlanId==_reqplanId обладают разной селективностью. Подозреваю что если у тебя есть статистика по reqPlanId без условия по коду компании, то отимизатор будет чаще промахиваться и выбирать некорректный план. (Скажем - выборку по коду плана, для тех компаний в которых он только один)...
А вообще, дополнительная статистика по компаниям имеет смысл, если значение поля имеет разную селективность в разных компаниях (применительно к Аксапте)
__________________
Axapta v.3.0 sp5 kr2 |
|
15.07.2011, 10:49 | #6 |
Участник
|
|
|
Теги |
index, indexunique, recid, индекс |
|
|