- 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.
în Azure SQL Database, vizualizările de gestionare dinamică nu pot expune informații care ar avea impact asupra conținutului bazei de date sau nu pot expune informații despre alte baze de date la care utilizatorul are acces. Pentru a evita expunerea acestor informații, fiecare rând care conține date care nu aparțin entității găzduite conectate este filtrat.
numele coloanei | Tipul de date | descriere |
---|---|---|
index_handle | int | identifică un anumit indice lipsă. Identificatorul este unic pe server. index_handle este cheia acestui tabel. |
database_id | smallint | identifică baza de date în care se află tabelul cu indexul lipsă. |
object_id | int | identifică tabelul în care lipsește indexul. |
equality_columns | nvarchar(4000) | lista separată prin virgulă a coloanelor care contribuie la predicatele de egalitate ale formularului: tabel.column = constant_value |
inechality_columns | nvarchar(4000) | lista separată prin virgulă a coloanelor care contribuie la predicatele inegalității, de exemplu, predicatele formei: tabel.coloana > constant_value orice operator de comparație, altul decât”=”, exprimă inegalitatea. |
inclus_columns | nvarchar(4000) | lista separată prin virgulă a coloanelor necesare ca coloane de acoperire pentru interogare. Pentru mai multe informații despre acoperirea sau coloanele incluse, consultați Crearea indexurilor cu coloanele incluse. pentru indexurile optimizate pentru memorie (atât hash, cât și nonclustered optimizate pentru memorie), ignorați included_columns. Toate coloanele tabelului sunt incluse în fiecare index optimizat pentru memorie. |
declarație | nvarchar(4000) | numele tabelului în care lipsește indexul. |
Comentarii
informații returnate de SYS.dm_db_missing_index_details este actualizat atunci când o interogare este optimizat de interogare de optimizare, și nu este persistat. Informațiile index lipsă sunt păstrate numai până când SQL Server este repornit. Administratorii bazei de date ar trebui să facă periodic copii de rezervă ale informațiilor index lipsă dacă doresc să le păstreze după reciclarea serverului.
pentru a determina din ce grupuri de indici lipsă face parte un anumit index lipsă, puteți interoga vizualizarea gestionare dinamică SYS.dm_db_missing_index_groups prin echiparea acesteia cu SYS.dm_db_missing_index_details pe baza coloanei index_handle.
notă
setul de rezultate pentru acest DMV este limitat la 600 de rânduri. Fiecare rând conține un index lipsă. Dacă aveți mai mult de 600 de indici lipsă, ar trebui să abordați indexurile lipsă existente, astfel încât să le puteți vizualiza pe cele mai noi.
utilizarea informațiilor Index lipsă în declarațiile CREATE INDEX
pentru a converti informațiile returnate de SYS.dm_db_missing_index_details într-o declarație CREATE INDEX atât pentru indexurile optimizate pentru memorie, cât și pentru cele bazate pe disc, coloanele de egalitate ar trebui să fie puse înaintea coloanelor de inegalitate și împreună ar trebui să facă cheia indexului. Coloanele incluse trebuie adăugate la instrucțiunea creare INDEX utilizând clauza includere. Pentru a determina o ordine eficientă pentru coloanele de egalitate, ordonați-le pe baza selectivității lor: listați mai întâi coloanele cele mai selective (cea mai stângă din lista coloanelor).
pentru mai multe informații despre indexurile optimizate pentru memorie, consultați indexurile pentru tabelele optimizate pentru memorie.
consistența tranzacției
dacă o tranzacție creează sau scade un tabel, rândurile care conțin informații index lipsă despre obiectele abandonate sunt eliminate din acest obiect de gestionare dinamică, păstrând consistența tranzacției.
permisiuni
pe SQL Server, necesită VIEW SERVER STATE
permisiune.
pe obiectivele de servicii SQL Database Basic, S0 și S1 și pentru bazele de date din bazine elastice, este necesar contul Server admin
sau un Azure Active Directory admin
. Pe toate celelalte obiective SQL Database service, permisiunea VIEW DATABASE STATE
este necesară în baza de date.