Частота вычисления статистики зависит от приложения и среды. Она зависит исключительно от скорости и объема преобразований данных в базе данных. Еслибаза данных претерпевает существенное изменение объема данных (зависит от приложения) в сочетании с потенциальным изменением распределения данных, желательно анализировать схемы приложений с той же частотой, с которой меняются данные. Полезно иметь различные графики анализа для наборов таблиц и индексов. Некоторые нужно анализировать ежедневно, другие - еженедельно, а какие-то не чаще одного раза в месяц. Необходимо позаботиться, чтобы после любой необычно большой вставки данных или после очень крупного удаления данных был немедленно произведен повторный анализ таблиц и индексов. Это послужит гарантией того, что хранящаяся в словаре данных статистика соответствует действительному количеству и распределению строк в таблице. Если в данный момент в таблице 10 млн строк, а статистика отражает состояние, когда в ней было всего 5 млн строк, вполне возможно, что построенный оптимизатором план выполнения не будет оптимальным.
При пользовании пакетом DBMS_STATS пользователь при автоматическом вычислении статистики для конкретных таблиц может задействовать опцию automatic. Чтобы сделать это, достаточно на уровне таблицы установить опцию monitoring для списка таблиц. Таблицы, мониторинг которых желательно осуществить, нужно изменить (alter), а атрибут monitoring установить Hayes. Фактическое вычисление статистики для этих таблиц может быть выполнено с использованием процедур dbms_state.gather_schema_stats или dbms_stats.gather_ databasestats. Эти процедуры имеют возможность отслеживать состояние статистики и определять, является ли статистика для заданного списка таблиц "черствой" (устаревшей) или пустой.
Статистика объекта считается черствой, если над таблицей было совершено достаточно много операций DML. Это напоминает пример с авторалли по бездорожью, о котором шла речь в главе "Введение в управление производительностью Oracle". Если ваш автомобиль промчался тысячи миль, будет справедливо,
если после ралли он пройдет инспекцию, настройку и ему заменят масло. Ожидать, что без какого бы то ни было сопровождения после длинной и трудной поездки машина сможет и дальше работать на оптимальном уровне, было бы в высшей степени неразумно (независимо от того, какая из автомобильных фирм ее произвела). То же самое относится и к базам данных Oracle. Если выполняется большая по объему работа, связанная со вставкой, обновлением или удалением данных, статистика таблицы, о которой ведется речь, становится черствой и требует повторного вычисления. Ожидать оптимальной производительности без повторного вычисления статистики нереалистично.
| < Предыдущая | Следующая > |
|---|


