Zum Inhalt springen

SQL Tipp #002 – Monitoring SQL Statements

    In BI Projekten ist es sehr wichtig, die von den Endanwender abgesetzten bzw. von den BI-Tools generierten SQL Statements analysieren zu können. Je nach BI-Tool lässt sich das generierte SQL durch allgemeine Einstellungen beeinflussen oder auch durch ein Re-Design des Berichtes optimieren bzw. korrigieren. Die SQL’s können dem Projektteam außerdem Anhaltspunkte über typische Muster von Abfragen liefern. In jedem Fall lassen sich über das Monitoring der SQL-Statements Optimierungsmaßnahmen ableiten – Stichwort Indizierung und / oder die Bereitstellung von Aggregaten. Auf dem Markt gibt es einige (meiste kleine) Anbieter als auch IBM selbst, die entsprechende Tools anbieten. Man kann aber auch die Snapshotfunktionen, die DB2 von Haus aus mitliefert, verwenden.

    Das nachfolgende Skript liefert neben dem SQL Statement alle wichtigen Angaben, wie Startzeitpunkt, Anzahl gelesene Zeilen und ausführender User (execution_id -> entspricht bei Windows Systemen dem Windows Anmeldenamen). Voraussetzung zur Nutzung der Snapshotfunktionen ist die SYSMON authority.

    SELECT
     i.SNAPSHOT_TIMESTAMP
    ,i.CLIENT_PLATFORM
    ,i.APPL_NAME
    ,i.CLIENT_NNAME
    ,i.DB_NAME
    ,i.EXECUTION_ID
    ,STMT_START
    ,STMT_STOP
    ,STMT_OPERATION
    ,ROWS_READ
    ,STMT_TEXT
    FROM
     SYSIBMADM.SNAPAPPL_INFO i
    inner JOIN 
     SYSIBMADM.SNAPSTMT s 
     on i.agent_id = s.agent_id
    where 
     i.DB_NAME = 'myDbase'
    ;

    getestet mit IBM DB2 LUW v9.5

    Schlagwörter: