Процесс сбора статистики по умолчанию работает для всех схем, включая пользовательские схемы. Сбор статистики сложен, но в основном сводится к тому, когда он собирает статистику и какую статистику он собирает:
- КОГДА Автозадачи собирают статистику во время указанных окон обслуживания (обычно 10 вечера в день).
- ЧТО Предпочтение
STALE_PERCENT
определяет, когда собирать статистику для таблицы или индекса. По умолчанию, если 10% строк изменятся, будет собрана статистика.
Но есть много исключений. Фиксированная статистика объектов, статистика объектов словаря и системная статистика (о производительности системы) собираются только вручную. И таблицы могут быть заблокированы, чтобы их статистика не изменялась.
Более подробную информацию можно найти в разделе Статистика оптимизатора Руководства по понятиям базы данных или в Статистика оптимизатора часть руководства по обучению SQL.
Существует несколько способов определить, когда статистика собиралась в последний раз. Для каждого объекта вы можете искать столбец даты LAST_ANALYZED
в таких представлениях, как DBA_TABLES
и DBA_INDEXES
.
Чтобы увидеть, когда должна запускаться автоматическая задача статистики , существует множество DBA_AUTOTASK_*
просмотров. Эти представления трудно понять, есть много способов, которыми можно отключить задачу. (Я бы хотел, чтобы Oracle только что использовал DBMS_SCHEDULER
). Чтобы увидеть, когда выполнялись задачи статистики , просмотрите представления DBA_OPTSTAT_*
.
Это тема огромная , и этот ответ - только обзор высокого уровня.