Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací souhrnné informace o skupinách chybějících indexů, s výjimkou prostorových indexů.
V Azure SQL Database nemůžou zobrazení dynamické správy zveřejnit informace, které by ovlivnily zahrnutí databáze nebo zpřístupňují informace o jiných databázích, ke kterým má uživatel přístup. Aby se zabránilo zveřejnění těchto informací, vyfiltruje se každý řádek obsahující data, která nepatří do připojeného tenanta.
| Název sloupce | Datový typ | Description |
|---|---|---|
| group_handle | int | Identifikuje skupinu chybějících indexů. Tento identifikátor je jedinečný napříč serverem. Ostatní sloupce poskytují informace o všech dotazech, u kterých je index ve skupině považován za chybějící. Indexová skupina obsahuje pouze jeden index. Lze ji připojit index_group_handlesys.dm_db_missing_index_groups. |
| unique_compiles | bigint | Počet kompilací a rekompilací, které by těžily z této chybějící indexové skupiny. Kompilace a překompilace mnoha různých dotazů mohou přispívat k této hodnotě sloupce. |
| user_seeks | bigint | Počet vyhledávání způsobených uživatelskými dotazy, pro které mohl být doporučený index ve skupině použit. |
| user_scans | bigint | Počet skenů způsobených uživatelskými dotazy, pro které mohl být použit doporučený index ve skupině. |
| last_user_seek | datetime | Datum a čas posledního vyhledávání způsobený uživatelskými dotazy, pro které mohl být použit doporučený index ve skupině. |
| last_user_scan | datetime | Datum a čas posledního skenování způsobené uživatelskými dotazy, pro které mohl být použit doporučený index ve skupině. |
| avg_total_user_cost | float | Průměrné náklady na uživatelské dotazy, které lze snížit o index ve skupině. |
| avg_user_impact | float | Průměrný procentuální přínos, který by uživatelské dotazy mohly zažít, pokud by byla tato chybějící indexová skupina zavedena. Hodnota znamená, že náklady na dotaz by v průměru klesly o toto procento, pokud by byla tato chybějící indexová skupina implementována. |
| system_seeks | bigint | Počet vyhledávání způsobených systémovými dotazy, jako jsou dotazy automatických statistik, pro které mohl být doporučený index ve skupině použit. Pro více informací viz Auto Stats Event Class. |
| system_scans | bigint | Počet skenů způsobených systémovými dotazy, pro které mohl být doporučený index ve skupině použit. |
| last_system_seek | datetime | Datum a čas posledního vyhledávání systému způsobené systémovými dotazy, pro které mohl být použit doporučený index ve skupině. |
| last_system_scan | datetime | Datum a čas posledního systémového skenování způsobeného systémovými dotazy, pro které mohl být použit doporučený index ve skupině. |
| avg_total_system_cost | float | Průměrné náklady systémových dotazů, které lze snížit o index ve skupině. |
| avg_system_impact | float | Průměrný procentuální přínos, který by systémové dotazy mohly zažít, pokud by byla tato chybějící indexová skupina implementována. Hodnota znamená, že náklady na dotaz by v průměru klesly o toto procento, pokud by byla tato chybějící indexová skupina implementována. |
Poznámky
Informace vrácené by sys.dm_db_missing_index_group_stats jsou aktualizovány každým provedením dotazu, nikoli každým dotazem nebo rekompilací. Statistiky používání se neuchovávají a jsou uchovávány pouze do restartu databázového enginu. Správci databází by měli pravidelně vytvářet zálohy chybějících indexových informací, pokud chtějí zachovat statistiky využití po recyklaci serveru. Pomocí sloupce sqlserver_start_time v sys.dm_os_sys_info vyhledejte čas posledního spuštění databázového stroje.
Poznámka:
Výsledná sada pro toto DMV je omezena na 600 řádků. Každý řádek obsahuje jeden chybějící rejstřík. Pokud máte více než 600 chybějících indexů, měli byste řešit stávající chybějící indexy, abyste pak mohli vidět ty novější.
Jedna chybějící skupina indexů může mít několik dotazů, které vyžadovaly stejný index. Pro více informací o jednotlivých dotazech, které vyžadovaly specifický index v tomto DMV, viz sys.dm_db_missing_index_group_stats_query.
Povolení
Pro dotazování tohoto dynamického pohledu správy musí mít uživatelé oprávnění VIEW SERVER STATE nebo jakékoli oprávnění, které implikuje oprávnění VIEW SERVER STATE.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.
Examples
Následující příklady ilustrují, jak používat sys.dm_db_missing_index_group_stats dynamický pohled na správu. Zjistěte více o pokynech pro použití chybějících indexů v ladění neklastrovaných indexů s chybějícími indexovými návrhy.
A. Najděte 10 chybějících indexů s nejvyšším očekávaným zlepšením uživatelských dotazů
Následující dotaz určuje, které 10 chybějících indexů by přineslo nejvyšší očekávané kumulativní zlepšení v sestupném pořadí pro uživatelské dotazy.
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. Najděte jednotlivé chybějící indexy a jejich sloupce pro konkrétní chybějící skupinu indexů
Následující dotaz určuje, které chybějící indexy tvoří konkrétní chybějící indexovou skupinu, a zobrazuje jejich sloupcové detaily. Pro tento příklad je chybějící 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;
Tento dotaz poskytuje název databáze, schématu a tabulky, kde index chybí. Také poskytuje názvy sloupců, které by měly být použity pro indexový klíč. Při psaní příkazu CREATE INDEX DDL pro implementaci chybějících indexů nejprve uveďte sloupce rovnosti a poté sloupce nerovnosti v klauzuli ON <table_name> příkazu CREATE INDEX. Zahrnuté sloupce by měly být uvedeny v klauzuli INCLUDE v příkazu CREATE INDEX. Pro určení efektivního pořadí sloupců rovnosti je seřaďte podle jejich selektivity, přičemž nejselektivnější sloupce jsou uvedeny jako první (nejlevičí v seznamu sloupců). Naučte se , jak aplikovat chybějící indexové návrhy.
Další kroky
Více o chybějící funkci indexu se dozvíte v následujících článcích:
- Ladění neclusterovaných indexů s využitím návrhů týkajících se chybějících indexů
- 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)
- VYTVOŘTE INDEX (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)