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.

dynamiske ledelsesvisninger kan ikke eksponere oplysninger, der kan påvirke databaseindeslutningen, eller eksponere oplysninger om andre databaser, som brugeren har adgang til. For at undgå at afsløre disse oplysninger filtreres hver række, der indeholder data, der ikke hører til den tilsluttede lejer.

kolonnenavn datatype beskrivelse
indekshandle Int identificerer et bestemt manglende indeks. Identifikatoren er unik på tværs af serveren. indeks_handle er nøglen til denne tabel.
database_id smallint identificerer den database, hvor tabellen med det manglende indeks ligger.
object_id int identificerer tabellen, hvor indekset mangler.
lighed_columns nvarchar(4000) kommasepareret liste over kolonner, der bidrager til ligestillingsprædikater af formularen:
tabel.kolonne =constant_value
ulighed_kolonner nvarchar(4000) kommasepareret liste over kolonner, der bidrager til ulighed prædikater, for eksempel prædikater af formularen:
tabel.kolonne >constant_value
enhver sammenligning operatør andet end “=” udtrykker ulighed.
included_columns nvarchar(4000) kommasepareret liste over kolonner, der er nødvendige som dækker kolonner til forespørgslen. Du kan finde flere oplysninger om dækning eller inkluderede kolonner under Opret indekser med inkluderede kolonner.
for hukommelsesoptimerede indekser (både hash og hukommelsesoptimeret nonclustered), Ignorer included_columns. Alle kolonner i tabellen er inkluderet i hvert hukommelsesoptimeret indeks.
erklæring nvarchar(4000) navn på tabellen, hvor indekset mangler.

bemærkninger

oplysninger, der returneres af sys.dm_db_missing_details, opdateres, når en forespørgsel optimeres af forespørgselsoptimeringen, og den er ikke vedvarende. Manglende indeksoplysninger opbevares kun, indtil serveren genstartes. Databaseadministratorer skal med jævne mellemrum lave sikkerhedskopier af de manglende indeksoplysninger, hvis de vil beholde dem efter servergenbrug.

for at bestemme, hvilke manglende indeksgrupper et bestemt manglende indeks er en del af, kan du forespørge dynamisk styringsvisning sys.dm_db_missing_indeks_groups ved at udstyre det med sys.dm_db_missing_indeks_details baseret på kolonnen indekshandle.

Bemærk

resultatsættet for denne DMV er begrænset til 600 rækker. Hver række indeholder et manglende indeks. Hvis du har mere end 600 manglende indekser, skal du adressere de eksisterende manglende indekser, så du derefter kan se de nyere.

brug af manglende indeksoplysninger i opret INDEKSERINGER

for at konvertere de oplysninger, der returneres af sys.dm_db_missing_details til en opret indekserings erklæring for både hukommelsesoptimerede og diskbaserede indekser, skal ligestillingskolonner placeres før ulighedskolonnerne, og sammen skal de gøre nøglen til indekset. Inkluderede kolonner skal føjes til sætningen Opret indeks ved hjælp af klausulen Inkluder. For at bestemme en effektiv rækkefølge for ligestillingskolonnerne skal du bestille dem baseret på deres selektivitet: liste de mest selektive kolonner først (længst til venstre i kolonnelisten).

du kan finde flere oplysninger om hukommelsesoptimerede indekser i indekser for Hukommelsesoptimerede tabeller.

Transaktionskonsistens

hvis en transaktion opretter eller dropper en tabel, fjernes rækkerne, der indeholder manglende indeksoplysninger om de faldne objekter, fra dette dynamiske administrationsobjekt, hvilket bevarer transaktionskonsistensen.

tilladelser

kræver VIEW SERVER STATE tilladelse.
på standard -, S0-og S1-servicemål og for databaser i elastiske puljer kræves Server admin eller en Azure Active Directory admin – konto. På alle andre Databasetjenestemål er tilladelsen VIEW DATABASE STATE påkrævet i databasen.

Se Også

Related Post

Leave A Comment