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
Információt ad vissza az adatbázistábla oszlopairól, amelyekről hiányzik az index.
sys.dm_db_missing_index_columns dinamikus menedzsment funkció.
Szemantika
sys.dm_db_missing_index_columns(index_handle)
Arguments
index_handle
Egy egész szám, amely egyedien azonosítja a hiányzó indexet. Ez a következő dinamikus menedzsment objektumokból érhető el:
sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_groups (Transact-SQL)
Visszaadott tábla
| Oszlop név | Adattípus | Description |
|---|---|---|
| column_id | int | Az oszlop azonosítója. |
| column_name | sysname | A táblázatoszlop neve. |
| column_usage | varchar(20) | Hogyan használja az oszlopot a lekérdezés. A lehetséges értékek és leírásaik a következők: EGYENLŐSÉG: Az oszlop hozzájárul egy predikátumhoz, amely az egyenlőséget fejezi ki, a következő formában: table.oszlop = constant_value EGYENLŐTLENSÉG: Az oszlop hozzájárul egy predikátumhoz, amely egyenlőtlenséget fejez ki, például egy olyan predikátumot, amelynek formája a táblázat.oszlop>constant_value. Bármely összehasonlító operátor, a "="-n kívül, egyenlőtlenséget fejez ki. INCLUDE: Az oszlopot nem használják predikátum értékelésére, hanem más okból, például egy lekérdezés lefedésére. |
Megjegyzések
A visszaküldött sys.dm_db_missing_index_columns információk frissülnek, amikor a lekérdezésoptimalizáló egy lekérdezést optimalizál, és nem marad fenn. A hiányzó indexinformációk csak addig maradnak meg, amíg az adatbázis motort újraindítják. Az adatbázis-adminisztrátoroknak időnként készíteniük kell a hiányzó indexinformációkat, ha azt a szerver újrahasznosítása után is meg akarják tartani. A sqlserver_start_time oszlopával keresse meg az adatbázismotor utolsó indítási idejét.
Tranzakciós konzisztencia
Ha egy tranzakció létrehoz vagy eltávolít egy táblát, a hiányzó indexinformációkat tartalmazó sorokat eltávolítják ebből a dinamikus menedzsment objektumból, megőrizve a tranzakciókonzisztenciát.
Permissions
A felhasználóknak meg kell kapni a VIEW SERVER STATE engedélyt, vagy bármilyen olyan engedélyt, amely a VIEW SERVER STATE engedélyt jelent a dinamikus menedzsment funkció lekérdezéséhez.
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
A következő példa lefuttat egy lekérdezést a Address táblán, majd sys.dm_db_missing_index_columns a dinamikus menedzsment nézetet használva, hogy visszaadja azokat a táblázatoszlopokat, amelyekből hiányzik az index.
USE AdventureWorks2022;
GO
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
WHERE StateProvinceID = 9;
GO
SELECT mig.*, statement AS table_name,
column_id, column_name, column_usage
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
ORDER BY mig.index_group_handle, mig.index_handle, column_id;
GO
A hiányzó indexjavaslatokat lehetőség szerint egymással és a jelenlegi adatbázisban lévő indexekkel kell kombinálni. Tanuld meg, hogyan alkalmazd ezeket a javaslatokat a nem klaszterezett indexek hangolójában, amelyekben hiányzó indexjavaslatok vannak.
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_details (Transact-SQL)
- sys.dm_db_missing_index_groups (Transact-SQL)
- sys.dm_db_missing_index_group_stats (Transact-SQL)
- sys.dm_db_missing_index_group_stats_query (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)