1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Tabelle zum Index finden

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von freshman, 26 September 2011.

  1. freshman

    freshman Datenbank-Guru

    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
     
  2. ukulele

    ukulele Datenbank-Guru

    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/
     
  3. freshman

    freshman Datenbank-Guru

    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
     
    Walter gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen