Friday, 19. december 2008 5 19 /12 /Dez. /2008 10:30

Eine der guten Neuerungen im MS SQL 2005 (ja, ich weiß, es gibt schon den 2008 … wir hinken etwas hinterher ), sind die DMV = Dynamic Management Views (Dynamische Verwaltungssichten), die im Schema sys jeder Datenbank liegen.

Sie erlauben einen, Statusinformation des Servers abzurufen und so auch frühzeitig Probleme und Schwachstellen zu erkennen.

Nach der Migration auf SQL2005 beobachte ich als erstes die Ergebnisse aus dem DMV zu den Indexstatistiken. Wie ich hier selektiere und vorgehen, will ich ab und an hier mal vorstellen.  

Die erste DMV ist sys.dm_db_index_usage_stats, hier wird vermerkt, welcher Index wie häufig verwendet wurde.  

Hier mal mein SQL Statement zur Selektion:  

SELECT SCH.name as SchemaName, OBJ.name AS TableName, 
       IDX.name AS IndexName, IDX.type_desc AS IndexType, 
       IUS.user_scans, IUS.last_user_scan, 
       IUS.user_seeks, IUS.last_user_seek, 
       IUS.system_scans, IUS.last_system_scan, 
       IUS.system_seeks, IUS.last_system_seek 
FROM sys.dm_db_index_usage_stats AS IUS 
     INNER JOIN sys.indexes AS IDX 
         ON IUS.index_id = IDX.index_id 
            AND IUS.object_id = IDX.object_id 
     INNER JOIN sys.objects AS OBJ 
         ON IDX.object_id = OBJ.object_id 
     INNER JOIN sys.schemas AS SCH 
         ON OBJ.schema_id = SCH.schema_id 
WHERE IUS.database_id = DB_ID()     -- Nur aktuelle DB betrachten 
      AND IDX.type > 0              -- Keine Heaps 
      AND OBJ.type = 'U'            -- Nur Userobjekte 
      AND (IUS.user_scans + IUS.user_seeks 
           + IUS.system_scans + IUS.system_seeks) > 0 
           -- Min. einmal verwendet 
ORDER BY (IUS.user_scans + IUS.user_seeks 
          + IUS.system_scans + IUS.system_seeks) DESC, 
         IUS.last_user_scan DESC, IUS.last_user_seek DESC 

 

Im Umkehrschluss gilt übrigens, dass Indizes, die nicht in der Statistik erscheinen, nicht verwendet werden und somit im Laufe der Zeit weg können; sie verringern nur den Schreibzugriff.

Dazu später mehr.  

Übrigens, um das Script ausführen zu dürfen, braucht man min. die Berechtigung VIEW SERVER STATE.

von Olaf Helper - veröffentlicht in: T-SQL - Community: Microsoft SQL Server
Kommentar hinzufügen - Kommentare (0)ansehen
Zurück zur Startseite

Über diesen Blog

Kategorien

Kalender

June 2012
M T W T F S S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
<< < > >>

Syndication (RSS)

  • RSS-Feed der Artikel

Suchen

Blog erstellen

Erstellen Sie einen Blog auf OverBlog - Kontakt - Nutzungsbedingungen - Werbung - Missbrauch melden - Impressum - Artikel mit den meisten Kommentaren