Megosztás a következőn keresztül:


sys.dm_db_missing_index_group_stats (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Összefoglaló információkat ad a hiányzó indexcsoportokról, kivéve a térbeli indexeket.

Az Azure SQL Database-ben a dinamikus felügyeleti nézetek nem tehetnek közzé olyan információkat, amelyek hatással lennének az adatbázis-elszigetelésre, vagy nem tehetnek közzé információkat más olyan adatbázisokról, amelyekhez a felhasználó hozzáfér. Az információk felfedésének elkerülése érdekében a rendszer kiszűr minden olyan sort, amely nem a csatlakoztatott bérlőhöz tartozó adatokat tartalmaz.

Oszlop név Adattípus Description
group_handle int Azonosít egy hiányzó indexcsoportot. Ez az azonosító egyedi a szerveren belül.

A többi oszlop minden olyan lekérdezésről információt ad, amelyeknél a csoport indexe hiányzónak számít.

Egy indexcsoport csak egy indexet tartalmaz.

Csatlakozni index_group_handlelehet sys.dm_db_missing_index_groups-ben.
unique_compiles bigint Számos válogatás és újrafordítás, amely profitálna ebből a hiányzó indexcsoportból. Sokféle lekérdezés összeállítása és újrafordítása hozzájárulhat ehhez az oszlopértékhez.
user_seeks bigint Azok száma, amelyeket a felhasználói lekérdezések okoztak, és amelyekhez a csoportban javasolt index használható lehetett.
user_scans bigint A felhasználói lekérdezések által okozott szkennelések száma, amelyekhez a csoportban javasolt index használható lehetett.
last_user_seek datetime Az utolsó keresés dátuma és időpontja, amelyet a felhasználói lekérdezések okoztak, amelyekhez a csoportban javasolt indexet lehetett volna használni.
last_user_scan datetime Az utolsó vizsgálat dátuma és időpontja, amelyet a felhasználói lekérdezések okoztak, amelyekhez a csoportban javasolt indexet lehetett volna használni.
avg_total_user_cost float A felhasználói lekérdezések átlagos költsége, amelyet a csoport indexe csökkenthet.
avg_user_impact float Az átlagos százalékos előny, amit a felhasználói lekérdezések tapasztalhatnak, ha ezt a hiányzó indexcsoportot megvalósítanák. Az érték azt jelenti, hogy a lekérdezési költség átlagosan ezzel a százalékkal csökkenne, ha ezt a hiányzó indexcsoportot megvalósítanák.
system_seeks bigint A rendszerlekérdezések, például automatikus statisztikák által okozott keresések száma, amelyekhez a csoportban ajánlott indexet lehetett volna használni. További információért lásd: Auto Stats Event Class.
system_scans bigint A rendszer lekérdezések által okozott vizsgálatok száma, amelyekhez a csoportban javasolt indexet lehetett volna használni.
last_system_seek datetime Az utolsó rendszerkeresés dátuma és időpontja, amelyet a csoportban javasolt indexet lehetett volna használni.
last_system_scan datetime Az utolsó rendszervizsgálat dátuma és időpontja, amelyet a csoportban javasolt indexet lehetett volna használni.
avg_total_system_cost float A rendszer lekérdezéseinek átlagos költsége, amelyet a csoport indexe csökkenthet.
avg_system_impact float Az átlagos százalékos haszon, amit a rendszerlekérdezések tapasztalhatnak, ha ezt a hiányzó indexcsoportot megvalósítanák. Az érték azt jelenti, hogy a lekérdezési költség átlagosan ezzel a százalékkal csökkenne, ha ezt a hiányzó indexcsoportot megvalósítanák.

Megjegyzések

A visszaküldött sys.dm_db_missing_index_group_stats információk minden lekérdezés végrehajtása során frissülnek, nem minden lekérdezés fordítása vagy újrafordítása. A használati statisztikák nem maradnak fenn, csak addig tartják fenn, amíg az adatbázis motort újraindítják. Az adatbázis-adminisztrátoroknak időnként biztonsági másolatokat kell készíteniük a hiányzó indexinformációkról, ha a szerver újrahasznosítása után is meg akarják tartani a használati statisztikákat. A sqlserver_start_time oszlopával keresse meg az adatbázismotor utolsó indítási idejét.

Megjegyzés:

Ennek a DMV-nek az eredménykészlete 600 sorra korlátozott. Minden sorban egy hiányzó index található. Ha több mint 600 hiányzó indexed van, akkor kezeld a meglévő hiányzó indexeket, hogy így megnézhesd az újabbakat.

Egy hiányzó indexcsoport több lekérdezést is tartalmazhat, amelyekhez ugyanaz az indexre volt szükség. További információkért azokról az egyes lekérdezésekről, amelyekhez konkrét indexet kellett volna ebben a DMV-ben, lásd a sys.dm_db_missing_index_group_stats_query.

Permissions

A dinamikus menedzsment nézet lekérdezéséhez a felhasználóknak meg kell kapniuk a VIEW SERVER STATE engedélyt, vagy bármilyen olyan engedélyt, amely a VIEW SERVER STATE engedélyt feltételezi.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.

Példák

Az alábbi példák szemléltetik, hogyan lehet használni a sys.dm_db_missing_index_group_stats dinamikus menedzsment nézetet. Tudjon meg többet a hiányzó indexek hangolási útmutatójáról, hogyan lehet nem klaszterelt indexeket hiányzó indexjavaslatokkal hangolni.

A. Keresse meg azt a 10 hiányzó indexet, amelyek a legnagyobb várható javulást a felhasználói lekérdezéseknél

A következő lekérdezés határozza meg, hogy melyik 10 hiányzó index hozná a legvárhatóbb összesített javulást csökkenő sorrendben a felhasználói lekérdezéseknél.

SELECT TOP 10 *  
FROM sys.dm_db_missing_index_group_stats  
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;  

B. Keresd meg az egyes hiányzó indexeket és azok oszlopadatait egy adott hiányzó indexcsoporthoz

A következő lekérdezés meghatározza, mely hiányzó indexek alkotják egy adott hiányzó indexcsoportot, és megjeleníti az oszlop részleteit. A példa kedvéért a hiányzó index group_handle 24.

SELECT migs.group_handle, mid.*  
FROM sys.dm_db_missing_index_group_stats AS migs  
INNER JOIN sys.dm_db_missing_index_groups AS mig  
    ON (migs.group_handle = mig.index_group_handle)  
INNER JOIN sys.dm_db_missing_index_details AS mid  
    ON (mig.index_handle = mid.index_handle)  
WHERE migs.group_handle = 24;  

Ez a lekérdezés megadja annak az adatbázisnak, sémának és táblanak a nevét, ahol hiányzik az index. Emellett megadja az index kulcshoz használt oszlopok nevét is. Amikor a CREATE INDEX DDL utasítást írjuk a hiányzó indexek megvalósításához, először az egyenlőség oszlopokat, majd az egyenlőtlenségi oszlopokat az CREATE < ON table_name > záradékában soroljuk fel. A mellékelt oszlopokat a CREATE INDEX utasítás INCLUDE klauzulájában kell felsorolni. Az egyenlőségi oszlopok hatékony sorrendjének meghatározásához soroljuk őket a szelektivitásuk alapján, először a legszelektívebb oszlopokat sorolva (a lista balleg baloldala). Tanuld meg, hogyan alkalmazd a hiányzó indexjavaslatokat.

Következő lépések

További információk a hiányzó indexfunkcióról a következő cikkekben találhatók: