DBAtlas · Атлас эксплуатации баз данных

Сбор статистики (DBMS_STATS)

OracleОбслуживание

Команда

-- Single table (including cascaded indexes):
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname => 'CUSTOMER_APP', tabname => 'CUSTOMER', cascade => TRUE, estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);

-- Whole schema:
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'CUSTOMER_APP', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, cascade => TRUE, degree => 4);

-- Whole database (run only in a maintenance window / off-peak hours):
EXEC DBMS_STATS.GATHER_DATABASE_STATS(estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);

Что делает

Собирает статистику таблиц/индексов для оптимизатора; обеспечивает построение правильных планов выполнения.

Когда использовать

После крупных DML/загрузок, при деградации планов, после создания нового индекса/таблицы.

Внимание

Изменение статистики может изменить планы выполнения; на критичных системах сначала протестируйте/сравните с AWR. Параллелизм DEGREE потребляет CPU. GATHER_DATABASE_STATS — тяжёлая операция в часы пиковой нагрузки.

Открыть в DBAtlas →

Связанные материалы