Montag, 3. Februar 2014

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 konfrontiert worden, das durch die Abfrage generiert wird. 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”.

IO_UNTABELLARISCH

Um das Ergebnis leichter lesbar und besser aufbereitet zu präsentieren, gibt es von Richie Rump (blog | twitter) 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.

IO_TABELLARISCH

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!

1 Kommentar :

  1. Vielen Dank für das Tutorial, Ihre ausführliche Erklärung hat mir geholfen! Ich freue mich auf neue Artikel.

    AntwortenLöschen