Tabellarische Darstellung von IO Statistiken

Mehr durch Zufall bin ich auf eine sehr interessante Webseite gestoßen, die im täglichen Geschäft mit Microsoft SQL Server bei einem DBA / Entwickler nicht fehlen darf. Jeder SQL Experte, der schon einmal Ausführungspläne analysieren musste, ist unweigerlich mit dem I/O produziert worden, das die Abfrage generiert. Das Ergebnis wird anschließend in einem Meldungsfenster angezeigt. Nun sind die Daten nicht gerade benutzerfreundlich angeordnet und man muss sich mühsam durch das Ergebnis lesen.

Die nachfolgende Abfrage – aus AdventureWorks2012 – liefert das folgende Ergebnis für den produzierten I/O:

-- Ausgabe des IO aktivieren
SET STATISTICS IO ON;
 
SELECT  CAST (CONVERT(char(6), h.OrderDate, 112) + '01' AS datetime)    AS OrderMonth,
        SUM(h.TotalDue)                                                 AS TotalAmt,
        COUNT(d.SalesOrderDetailID)                                     AS ProductLines
FROM    sales.SalesOrderHeader h INNER JOIN sales.SalesOrderDetail d
        ON (h.SalesOrderID = d.SalesOrderID)
WHERE   OrderDate >= '20050101' AND
        OrderDate < '20060101'
GROUP BY
        CAST (CONVERT(char(6), h.OrderDate, 112) + '01' AS datetime)
 
-- Ausgabe des IO deaktivieren
SET STATISTICS IO OFF;

Das Ergebnis dieser Abfrage – in Bezug auf IO – ist schlecht lesbar und man muss sich durch die Ergebnisse “quälen”.

Um das Ergebnis leichter lesbar und besser aufbereitet zu präsentieren, gibt es von Richie Rump eine fantastische Webseite, in die das Ergebnis nur noch in eine dafür vorbereitete Textbox kopiert werden muss. Unter http://www.statisticsioparser.com/statisticsioparser/index.html kann man diesen tollen Parser finden.

Coole Sache. Herzlichen Dank an Richie. Eine – aus meiner Sicht – tolle Entwicklung wenn man nur die Management Konsole für Microsoft SQL Server zur Verfügung hat.

Herzlichen Dank fürs Lesen!