- 03/20/2017
- 2 minutes to read
-
-
W
-
r
-
c
-
M
-
s
-
+5
-
Applies to: SQL Server (all supported versions)
Azure SQL Database
Returns detailed information about missing indexes, excluding spatial indexes.
v databázi Azure SQL nemohou dynamické pohledy na správu odhalit informace, které by ovlivnily zadržování databáze nebo odhalily informace o jiných databázích, ke kterým má uživatel přístup. Aby nedošlo k odhalení těchto informací, je každý řádek, který obsahuje data, která nepatří připojenému nájemci, odfiltrován.
název sloupce | datový typ | popis |
---|---|---|
index_handle | int | identifikuje konkrétní chybějící index. Identifikátor je na celém serveru jedinečný. index_handle je klíčem této tabulky. |
database_id | smallint | identifikuje databázi, kde je umístěna tabulka s chybějícím indexem. |
object_id | int | identifikuje tabulku, kde index chybí. |
equality_columns | nvarchar (4000) | čárkami oddělený seznam sloupců, které přispívají k rovnosti predikátů formuláře: tabulka.sloupec =constant_value |
inekvality_columns | nvarchar (4000) | čárkami oddělený seznam sloupců, které přispívají k predikátům nerovnosti, například predikáty tvaru: tabulka.sloupec > constant_value jakýkoli srovnávací operátor jiný než “ = “ vyjadřuje nerovnost. |
included_columns | nvarchar (4000) | čárkami oddělený seznam sloupců potřebných jako krycí sloupce pro dotaz. Další informace o pokrytí nebo zahrnutých sloupcích naleznete v části Vytvořit indexy se zahrnutými sloupci. pro indexy optimalizované pro paměť (hash i nonclustered optimalizované pro paměť) ignorujte included_columns. Všechny sloupce tabulky jsou zahrnuty v každém indexu optimalizovaném pro paměť. |
příkaz | nvarchar (4000) | název tabulky, kde index chybí. |
poznámky
informace vrácené společností sys. dm_db_missing_index_details jsou aktualizovány, když je dotaz optimalizován optimalizátorem dotazů a není přetrváván. Chybějící informace o indexu jsou uchovávány pouze do restartu SQL Serveru. Správci databáze by měli pravidelně vytvářet záložní kopie chybějících informací o indexu, pokud si je chtějí uchovat po recyklaci serveru.
Chcete-li zjistit, které chybějící skupiny indexů konkrétní chybějící index je součástí, můžete dotaz sys.dm_db_missing_index_groups Dynamic management view vyrovnáním s sys.dm_db_missing_index_details na základě sloupce index_handle.
Poznámka
výsledek nastavený pro tento DMV je omezen na 600 řádků. Každý řádek obsahuje jeden chybějící index. Pokud máte více než 600 chybějících indexů, měli byste řešit existující chybějící indexy, abyste mohli zobrazit novější.
pomocí chybějících informací o indexu v příkazech CREATE INDEX
Chcete-li převést informace vrácené sys.dm_db_missing_index_details do příkazu CREATE INDEX pro indexy optimalizované pro paměť i na disku, sloupce rovnosti by měly být umístěny před sloupce nerovnosti a společně by měly vytvořit klíč indexu. Zahrnuté sloupce by měly být přidány do příkazu vytvořit INDEX pomocí klauzule zahrnout. Chcete-li určit efektivní pořadí sloupců rovnosti, uspořádejte je na základě jejich selektivity: nejprve uveďte nejselektivnější sloupce (v seznamu sloupců zcela vlevo).
další informace o indexech optimalizovaných pro paměť naleznete v části indexy tabulek optimalizovaných pro paměť.
konzistence transakcí
pokud transakce vytvoří nebo zruší tabulku, řádky obsahující chybějící informace indexu o vyřazených objektech se z tohoto objektu dynamické správy odstraní, čímž se zachová konzistence transakcí.
oprávnění
na SQL Serveru vyžaduje VIEW SERVER STATE
oprávnění.
v cílích služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech je vyžadován účet Server admin
nebo Azure Active Directory admin
. U všech ostatních cílů databázové služby SQL je v databázi vyžadováno oprávnění VIEW DATABASE STATE
.