DBAtlas · Atlas für Datenbankbetrieb

Statistiken erheben (DBMS_STATS)

OracleWartung

Befehl

-- 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);

Was es tut

Erhebt Tabellen-/Indexstatistiken für den Optimizer; sorgt dafür, dass korrekte Ausführungspläne erzeugt werden.

Wann einsetzen

Nach großen DML-Operationen/Ladevorgängen, bei Planregressionen, nach einem neuen Index/einer neuen Tabelle.

Vorsicht

Statistikänderungen können Ausführungspläne ändern; auf kritischen Systemen zuerst mit AWR testen/vergleichen. DEGREE-Parallelität verbraucht CPU. GATHER_DATABASE_STATS ist zu Spitzenzeiten belastend.

In DBAtlas öffnen →

Verwandte Einträge