Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

I/O-Statistiken

Wir werden immer wieder nach „Abfrageperformance“ gefragt. Man studiert Ausführungspläne und I/O-Statistiken, um die Treiber zu identifizieren. Das Lesen und Analysieren der Ausführungspläne ist inzwischen recht übersichtlich im SQL Server Management Studio möglich. Bei den I/O-Statistiken sieht es leider etwas anders aus.

Wir verwenden für das Beispiel die Foodmart-Datenbank und setzen folgendes Statement ab:


SET STATISTICS IO ON;

SELECT  [product_id]
      ,[date_id]
      ,[customer_id]
      ,[promotion_id]
      ,[store_id]
      ,[store_sales]
      ,[store_cost]
      ,[unit_sales]
      ,[TimeUtilityID]
      ,[CumulationID]
      ,[ValueTypeID]
  FROM [FoodMart].[dbo].[V_sales_fact_2007]
  union all
SELECT  [product_id]
      ,[date_id]
      ,[customer_id]
      ,[promotion_id]
      ,[store_id]
      ,[store_sales]
      ,[store_cost]
      ,[unit_sales]
      ,[TimeUtilityID]
      ,[CumulationID]
      ,[ValueTypeID]
  FROM [FoodMart].[dbo].[V_sales_fact_2008]
union all
SELECT  [product_id]
      ,[date_id]
      ,[customer_id]
      ,[promotion_id]
      ,[store_id]
      ,[store_sales]
      ,[store_cost]
      ,[unit_sales]
      ,[TimeUtilityID]
      ,[CumulationID]
      ,[ValueTypeID]
  FROM [FoodMart].[dbo].[V_sales_fact_dec_2008]

  SET STATISTICS IO OFF;

Dabei ergibt sich ein Ergebnis von etwa 260.000 Zeilen.

Abb. 1: Meldungen im SQL Server Management Studio

Die Ausgaben für die I/O-Statistik sind nur in Textform vorhanden und daher sehr schwer „auf einen Blick“ zu lesen. Es gibt eine Webseite, die uns das Lesen sehr erleichtern kann: http://www.statisticsparser.com

Abb. 2: Import des Meldungstextes mithilfe von Statistic Parser

Man übernimmt einfach den Meldungstext in das vorgesehene Feld und drückt auf den Button „Parse“.

Abb. 3: I/O-Statistik des Statistic Parsers

Die I/O-Statistik erscheint übersichtlich in einem gut lesbaren Format. Ein kleiner Nachteil sei noch erwähnt: Im jetzigen Stadium der Entwicklung „versteht“ der Parser nur Ausgaben der englischen und wohl auch der spanischen Meldungen des SQL Server Management Studios.