Статистика. Что использовать DBMS_STATS или ANALYZE?

Стас Белков

Стас Белков

Автор статьи. Известный специалист в мире IT. Консультант по продуктам и решениям Oracle. Практикующий программист и администратор баз данных. Подробнее.

C каждой новой версией ORACLE стоимостной оптимизатор становится все более сложным. Поэтому для принятия правильных решений ему нужны достоверные статистические данные. Администратор должен об этом побеспокоиться, так как сбор статистики непосредственно влияет на мощность всей системы. Соответственно устаревшие статистические данные являются причиной выбора неоптимального плана выполнения запросов.

Для сбора статистики используется пакет dbms_stats и оператор analyze. Однако Oracle "настоятельно" рекомендует использовать именно пакет dbms_stats. Да и Том Кайт придерживается того же мнения. Его авторитетные утверждения:

Так как только dbms_stats собирает глобальную статистику (столбец global_stats в dba_tables, dba_indexes, dba_tab_cols, dba_tab_columns, dba_tab_col_statistics), значит, по значению столбца global_stats можно определить каким образом собиралась статистика - DBMS_STATS или ANALYZE.

DBMS_STATS собирает статистику только для стоимостного оптимизатора. То есть этот пакет не собирает никакую иную информацию. Например, не собирает такие данные: количество chained rows, средний объем свободного места в блоке, количество неиспользованных блоков данных. Такую статистику собирает оператор analyze.

Обратите внимание, что даже та статистика, которая собирается и DBMS_STATS, и ANALYZE несколько отличается. Это в первую очередь относится к avg_row_len и avg_col_len.

К тому же ожидается, что в будущем оператор ANALYZE не будет собирать статистику, необходимую стоимостному оптимизатору. Эта функция будет возложена исключительно на DBMS_STATS!

Вас заинтересует / Intresting for you:

Как устроен поиск блоков данны...
Как устроен поиск блоков данны... 4523 просмотров Дэн Wed, 03 Jan 2018, 17:39:13
Язык SQL в Oracle
Язык SQL в Oracle 4296 просмотров Ирина Светлова Tue, 21 Nov 2017, 13:26:01
Использование памяти PGA и UGA...
Использование памяти PGA и UGA... 6388 просмотров Денис Tue, 21 Nov 2017, 13:31:33
Процесс записи в журнал и на д...
Процесс записи в журнал и на д... 5194 просмотров Antoniy Sat, 20 Jan 2018, 06:16:54
Печать
Войдите чтобы комментировать