Articles

sys.dm_db_missing_index_details (Transact-SQL)

Posted by admin
  • 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.

Viz Také

Related Post