Базы данных Oracle - статьи

         

Статистический Анализ


Оптимизатор запросов в обычном режиме опирается на данные статистики. Важно, чтобы статистика была своевременно собрана и сохранена для оптимизации заданного SQL-предложения. Цель анализа статистики состоит в том, чтобы проверить, не пропущены или не устарели ли эти данные. Automatic Tuning Optimizer протоколирует типы статистических данных, которые фактически используются в процессе генерации плана, который потом проверяется. Например, для предиката равенства он протоколирует статистику различных значений столбца, тогда как для предиката диапазона он регистрирует статистику минимального и максимального значения столбца.

Как только запись фактически используемой статистики закончена, Automatic Tuning Optimizer продолжает проверять, имеются ли в наличии статистические данные, ассоциируемые с объектами запроса (то есть, таблица, индекс или материализованное представление). Если статистика доступна, то проверяется ее точность (то есть, свежесть и актуальность). Чтобы проверить точность статистики, он будет брать данные из соответствующего объекта запроса, и использовать выбранный результат для проверки точности.

Если найдено, что статистика опущена, он сгенерирует вспомогательную информацию для выбора опущенной статистики. Если статистика доступна, но не является свежей, он сгенерирует вспомогательную информацию в форме факторов настройки несвежей статистики, так что результирующая статистика отразит текущее состояние данных.

Заметим, что анализ статистики имеет два вида вывода:

  1. рекомендации для анализа объектов, для которых либо не найдена статистика, либо найдена, но устаревшая, и
  2. вспомогательная информация для возмещения опущенной или корректировки устаревшей статистики.
  3. Это хорошая идея для осуществления рекомендаций Analyze и повторного запуска Automatic SQL Advisor. Вспомогательная информация используется в случае, если рекомендации Analyze не были осуществлены. Вспомогательная информация сохраняется в SQL Profile, который описан в следующем разделе.



    Содержание раздела