Оптимизатор запросов в обычном режиме опирается на данные статистики. Важно, чтобы статистика была своевременно собрана и сохранена для оптимизации заданного SQL-предложения. Цель анализа статистики состоит в том, чтобы проверить, не пропущены или не устарели ли эти данные. Automatic Tuning Optimizer протоколирует типы статистических данных, которые фактически используются в процессе генерации плана, который потом проверяется. Например, для предиката равенства он протоколирует статистику различных значений столбца, тогда как для предиката диапазона он регистрирует статистику минимального и максимального значения столбца.
Как только запись фактически используемой статистики закончена, Automatic Tuning Optimizer продолжает проверять, имеются ли в наличии статистические данные, ассоциируемые с объектами запроса (то есть, таблица, индекс или материализованное представление). Если статистика доступна, то проверяется ее точность (то есть, свежесть и актуальность). Чтобы проверить точность статистики, он будет брать данные из соответствующего объекта запроса, и использовать выбранный результат для проверки точности.
Если найдено, что статистика опущена, он сгенерирует вспомогательную информацию для выбора опущенной статистики. Если статистика доступна, но не является свежей, он сгенерирует вспомогательную информацию в форме факторов настройки несвежей статистики, так что результирующая статистика отразит текущее состояние данных.
Заметим, что анализ статистики имеет два вида вывода:
Это хорошая идея для осуществления рекомендаций Analyze и повторного запуска Automatic SQL Advisor. Вспомогательная информация используется в случае, если рекомендации Analyze не были осуществлены. Вспомогательная информация сохраняется в SQL Profile, который описан в следующем разделе.