v$session_longops und dbms_stats

Der aktuelle Fortschritt des Statistiksammelprozess von großen Tabellen kann sehr gut über die View v$session_longops ausgelesen werden. Speziell im heutigen Fall wurde eine Oracle 9i Datenbank von einem Kunden über einen Datenbankimport wieder hergestellt. Hierbei fehlte nach dem Import ein Großteil der Statistiken, welches sich durch starke Performance-Probleme bemerkbar machte. Da das problematische Schema 37 sehr große Tabellen mit fehlenden Statistiken besaß, dauerte dieser Sammelprozess sehr lange. Um nun den aktuellen Fortschritt des Sammelprozesses einzusehen, verwendete ich deshalb folgende Abfrage:

SQL> select OPNAME, SOFAR, TOTALWORK, MESSAGE
2    from v$session_longops where TOTALWORK<>SOFAR;

OPNAME                    SOFAR      TOTALWORK  MESSAGE
------------------------- ---------- ---------- ------------------------------------------------------------
Gather Schema Statistics           3         37 Gather Schema Statistics: Schema : 3 out of 37 Objects done
Table Scan                     22503     753585 Table Scan:  DBW.DWH_TABSQG: 22503 out of 753585 Blocks done

Über die Spaten SOFAR und TOTALWORK konnte nun der aktuelle Fortschritt des Sammelprozesses ermittelt werden.