Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-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:
- Nem klaszterezett indexek optimalizálása hiányzó indexjavaslatokkal
- sys.dm_db_missing_index_columns (Transact-SQL)
- sys.dm_db_missing_index_details (Transact-SQL)
- sys.dm_db_missing_index_groups (Transact-SQL)
- sys.dm_db_missing_index_group_stats_query (Transact-SQL)
- INDEX KÉSZÍTÉSE (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)