Tabelle zum Index finden

freshman

SQL-Guru
Beiträge
100
Hallo zusammen,
bei einer Recherche im Internet bin ich darauf gestossen, wie man die fragmentierung von Indizes ausliest. Sehr interessant, wenn man bedenkt, das die Fragmentierung von Indizes gering gehalten werden soll...

SELECT OBJECT_NAME(OBJECT_ID), index_id,index_type_desc,index_level,
avg_fragmentation_in_percent,avg_page_space_used_in_percent,page_count
FROM sys.dm_db_index_physical_stats
(DB_ID(N'DBName'), NULL, NULL, NULL , 'SAMPLED')
WHERE avg_fragmentation_in_percent > '30'
ORDER BY avg_fragmentation_in_percent DESC

nun hab ich im Ergebnis die fragmentierten Indizes, brauche aber für die Neuerstellung oder Reorganisation ja auch den Tabellennamen, in dem der Index genutzt wird.
Hat jemand eine Idee, wie ich an den Tabellennamen für den Index komme?
Klar, manuelle Suche, aber dazu fehlt mir die Lust und auch die Zeit!
Am besten wäre die obrige Abfrage mit eine zusätzlichen Spalte 'Tabellenname'
DANKE

Gruß, freshman
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.702
Code:
SELECT    --OBJECT_NAME(OBJECT_ID), <--??
        p.index_id,
        o.name,
        p.index_type_desc,
        p.index_level,
        p.avg_fragmentation_in_percent,
        p.avg_page_space_used_in_percent,
        p.page_count
FROM    sys.dm_db_index_physical_stats(DB_ID(N'DBName'),NULL,NULL,NULL,'SAMPLED') p,
        sys.objects o
WHERE    p.avg_fragmentation_in_percent > '30'
AND        p.index_id = o.object_id
ORDER BY p.avg_fragmentation_in_percent DESC

http://www.marcusegger.de/2010/03/08/ms-sql-alle-indizes-einer-datenbank-sql-abfragen/
 
Werbung:

freshman

SQL-Guru
Beiträge
100
SUPER, hatte ich nicht gefunden den Artikel, und wenn man untenstehendes Statement nimmt, dann bekommt man die angezeigt, die in den Userdatenbanken sind. Danke Ukulele

SELECT p.index_id,
o.name,
p.index_type_desc,
p.index_level,
p.avg_fragmentation_in_percent,
p.avg_page_space_used_in_percent,
p.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(N'DBName'),NULL,NULL,NULL,'SAMPLED') p,
sys.objects o
WHERE o.name not like 'queue%'
and p.object_id = o.object_id
AND p.avg_fragmentation_in_percent > '30'
ORDER BY p.avg_fragmentation_in_percent DESC
 
Oben