Aktivitätsprotokollierung für die automatische Statistikerfassung
Das Statistikprotokoll ist eine Aufzeichnung aller Aktivitäten zur Statistikerfassung (manuell und automatisch), die in einer bestimmten Datenbank stattgefunden haben.
Der Standardname des Statistikprotokolls ist db2optstats.number.log. Es befindet sich im Verzeichnis $diagpath/events. Das Statistikprotokoll ist ein Umlaufprotokoll. Das Protokollierungsverhalten wird durch die Registrierdatenbankvariable DB2_OPTSTATS_LOG gesteuert.
Das Statistikprotokoll kann direkt angezeigt oder mithilfe der Tabellenfunktion SYSPROC.PD_GET_DIAG_HIST abgefragt werden. Diese Tabellenfunktion gibt eine Reihe von Spalten zurück, die Standardinformationen zu jedem protokollierten Ereignis enthalten, wie beispielsweise die Zeitmarke, den Db2® -Instanznamen, den Datenbanknamen, die Prozess-ID, den Prozessnamen und die Thread-ID. Das Protokoll enthält außerdem generische Spalten zur Verwendung durch verschiedene Protokolleinrichtungen. In der folgenden Tabelle werden die generischen Spalten und ihre Verwendung im Statistikprotokoll beschrieben.
| Spaltenname | Datentyp | Beschreibung |
|---|---|---|
| OBJTYPE | VARCHAR(64) | Der Typ von Objekt, auf den sich das Ereignis bezieht. Bei der Statistikprotokollierung
ist dies der Typ von Statistik, der zu erfassen ist. OBJTYPE kann sich auch auf einen Hintergrundprozess zur
Statistikerfassung beziehen, wenn der Prozess gestartet oder gestoppt wird. Ferner kann sich OBJTYPE auf Aktivitäten beziehen, die von der automatischen Statistikerfassung ausgeführt werden,
zum Beispiel Stichprobentests, Anfangsstichproben und Tabellenbewertung. Mögliche Werte für Aktivitäten zur Statistikerfassung:
Mögliche Werte für die
automatische Statistikerfassung:
|
| OBJNAME | VARCHAR(255) | Der Name des Objekts, auf das sich das Ereignis bezieht, falls verfügbar. Für die Statistikprotokollierung ist dies der Name der Tabelle oder des Index. Wenn OBJTYPE den Wert STATS DAEMON oder EVALUATION hat, ist OBJNAME der Datenbankname und OBJNAME_QUALIFIER hat den Wert NULL. |
| OBJNAME_QUALIFIER | VARCHAR(255) | Für die Statistikprotokollierung ist dies das Schema der Tabelle oder des Index. |
| EVENTTYPE | VARCHAR(24) | Der Ereignistyp ist die Aktion, die diesem Ereignis zugeordnet ist. Die folgenden Werte
für die Statistikprotokollierung sind möglich:
|
| FIRST_EVENTQUALIFIERTYPE | VARCHAR(64) | Der Typ des ersten Ereignisqualifikationsmerkmals. Ereignisqualifikationsmerkmale dienen zur Beschreibung der von dem Ereignis betroffenen Bereiche. Für die Statistikprotokollierung ist das erste Ereignisqualifikationsmerkmal die Zeitmarke für den Zeitpunkt, zu dem das Ereignis aufgetreten ist. Der Wert für den Typ des ersten Ereignisqualifikationsmerkmals ist AT. |
| FIRST_EVENTQUALIFIER | CLOB(16K) | Das erste Qualifikationsmerkmal für das Ereignis. Für die Statistikprotokollierung ist das erste Ereignisqualifikationsmerkmal die Zeitmarke für den Zeitpunkt, zu dem das Statistikereignis aufgetreten ist. Die Zeitmarke des Statistikereignisses kann sich von der Zeitmarke des Protokollsatzes, wie er in der Spalte TIMESTAMP dargestellt wird, unterscheiden. |
| SECOND_EVENTQUALIFIERTYPE | VARCHAR(64) | Der Typ des zweiten Ereignisqualifikationsmerkmals. Für die Statistikprotokollierung kann dieser Wert BY oder NULL sein. Dieses Feld wird für andere Ereignistypen nicht verwendet. |
| SECOND_EVENTQUALIFIER | CLOB(16K) | Das zweite Qualifikationsmerkmal für das Ereignis. Bei der
Statistikprotokollierung stellt diese Spalte für COLLECT-Ereignistypen dar, wie die Statistiken erfasst
wurden. Mögliche Werte:
|
| THIRD_EVENTQUALIFIERTYPE | VARCHAR(64) | Der Typ des dritten Ereignisqualifikationsmerkmals. Für die Statistikprotokollierung kann dieser Wert DUE TO oder NULL sein. |
| THIRD_EVENTQUALIFIER | CLOB(16K) | Das dritte Qualifikationsmerkmal für das Ereignis. Für die
Statistikprotokollierung stellt diese Spalte die Ursache dar, aus der die Statistikaktivität nicht abgeschlossen
werden konnte. Mögliche Werte:
|
| EVENTSTATE | VARCHAR(255) | Der Status des Objekts oder der Aktion infolge des
Ereignisses. Für die Statistikprotokollierung gibt diese Spalte den Status der Statistikoperation
an. Mögliche Werte:
|
Beispiele
select pid, tid,
substr(eventtype, 1, 10),
substr(objtype, 1, 30) as objtype,
substr(objname_qualifier, 1, 20) as objschema,
substr(objname, 1, 10) as objname,
substr(first_eventqualifier, 1, 26) as event1,
substr(second_eventqualifiertype, 1, 2) as event2_type,
substr(second_eventqualifier, 1, 20) as event2,
substr(third_eventqualifiertype, 1, 6) as event3_type,
substr(third_eventqualifier, 1, 15) as event3,
substr(eventstate, 1, 20) as eventstate
from table(sysproc.pd_get_diag_hist
('optstats', 'EX', 'NONE',
current_timestamp - 1 year, cast(null as timestamp))) as sl
order by timestamp(varchar(substr(first_eventqualifier, 1, 26), 26));PID TID EVENTTYPE OBJTYPE OBJSCHEMA OBJNAME EVENT1 EVENT2_ EVENT2 EVENT3_ EVENT3 EVENTSTATE
TYPE TYPE
----- ------------- --------- --------------------- --------- ---------- -------------------------- ------- -------------------- ------- -------- ----------
28399 1082145120 START STATS DAEMON - PROD_DB 2007-07-09-18.37.40.398905 - - - - success
28389 183182027104 COLLECT TABLE AND INDEX STATS DB2USER DISTRICT 2007-07-09-18.37.43.261222 BY Synchronous - - start
28389 183182027104 COLLECT TABLE AND INDEX STATS DB2USER DISTRICT 2007-07-09-18.37.43.407447 BY Synchronous - - success
28399 1082145120 COLLECT TABLE AND INDEX STATS DB2USER CUSTOMER 2007-07-09-18.37.43.471614 BY Asynchronous - - start
28399 1082145120 COLLECT TABLE AND INDEX STATS DB2USER CUSTOMER 2007-07-09-18.37.43.524496 BY Asynchronous - - success
28399 1082145120 STOP STATS DAEMON - PROD_DB 2007-07-09-18.37.43.526212 - - - - success
28389 183278496096 COLLECT TABLE STATS DB2USER ORDER_LINE 2007-07-09-18.37.48.676524 BY Synchronous sampled - - start
28389 183278496096 COLLECT TABLE STATS DB2USER ORDER_LINE 2007-07-09-18.37.53.677546 BY Synchronous sampled DUE TO Timeout failure
28389 1772561034 START EVALUATION - PROD_DB 2007-07-10-12.36.11.092739 - - - - success
28389 8231991291 COLLECT TABLE AND INDEX STATS DB2USER DISTRICT 2007-07-10-12.36.30.737603 BY Asynchronous - - start
28389 8231991291 COLLECT TABLE AND INDEX STATS DB2USER DISTRICT 2007-07-10-12.36.34.029756 BY Asynchronous - - success
28389 1772561034 STOP EVALUATION - PROD_DB 2007-07-10-12.36.39.685188 - - - - success
28399 1504428165 START STATS DAEMON - PROD_DB 2007-07-10-12.37.43.319291 - - - - success
28399 1504428165 COLLECT TABLE AND INDEX STATS DB2USER CUSTOMER 2007-07-10-12.37.43.471614 BY Asynchronous - - start
28399 1504428165 COLLECT TABLE AND INDEX STATS DB2USER CUSTOMER 2007-07-10-12.37.44.524496 BY Asynchronous - - failure
28399 1504428165 STOP STATS DAEMON - PROD_DB 2007-07-10-12.37.45.905975 - - - - success
28399 4769515044 START STATS DAEMON - PROD_DB 2007-07-10-12.48.33.319291 - - - - success
28389 4769515044 WRITE TABLE AND INDEX STATS DB2USER CUSTOMER 2007-07-10-12.48.33.969888 BY Asynchronous - - start
28389 4769515044 WRITE TABLE AND INDEX STATS DB2USER CUSTOMER 2007-07-10-12.48.34.215230 BY Asynchronous - - success