Mittwoch, Februar 15, 2012

Fortschrittsangaben in v$session_longops

Heute ist mir zum ersten Mal aufgefallen, dass in v$session_longops nicht unbedingt immer plausible Angaben erscheinen:

   SOFAR  TOTALWORK MESSAGE                                             SQL_PLAN_OPERATION  SQL_PLAN_OPTIONS 
-------- ---------- --------------------------------------------------- ------------------- -----------------
 1138348     861414 Sort Output:  : 1138348 out of 861414 Blocks done   WINDOW              SORT             

Entsprechend zeigt auch DBMS_SQLTUNE.REPORT_SQL_MONITOR einen Progress von deutlich über 100%. Es handelt sich dabei um eine WINDOW SORT Operation einer analytischen Funktion, also nicht um einen Wert der mit dbms_application_info.set_session_longops eingefügt wurde, sondern um interne Operationsangaben.

Davon abgesehen deutet sich mal wieder an, dass man mit Analytics auf großen Datenmengen vorsichtig sein sollte, da die WINDOW SORT Operation nicht ganz unproblematisch ist - wozu Jonathan Lewis Grundsätzliches gesagt hat; zwei Randbemerkungen zum Thema habe ich hier und hier gegeben. In solchen Fällen gehe ich unter Umständen auf die Verwendung eines Joins der Basistabelle mit einem aggregierten Zwischenergebnis zurück.

Keine Kommentare:

Kommentar veröffentlichen