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.

i Azure SQL Database kan ikke dynamiske administrasjonsvisninger eksponere informasjon som vil påvirke databasebeholdning eller eksponere informasjon om andre databaser brukeren har tilgang til. Hver rad som inneholder data som ikke tilhører den tilkoblede leieren, filtreres ut for å unngå å vise denne informasjonen.

Kolonnenavn datatype Beskrivelse
index_handle int Identifiserer en bestemt manglende indeks. Identifikatoren er unik på tvers av serveren. index_handle er nokkelen til denne tabellen.
database_id smallint Identifiserer databasen der tabellen med den manglende indeksen ligger.
object_id int Identifiserer tabellen der indeksen mangler.
equality_columns nvarchar(4000) Kommaseparert liste over kolonner som bidrar til likestillingspredikater av skjemaet:
tabell.kolonne = constant_value
inequality_columns nvarchar(4000) Kommaseparert liste over kolonner som bidrar til ulikhetspredikater, for eksempel predikater av skjemaet:
tabell.kolonne > constant_value
enhver sammenligningsoperator annet enn » = » uttrykker ulikhet.
included_columns nvarchar (4000) Kommaseparert liste over kolonner som trengs for å dekke kolonner for spørringen. Hvis Du vil Ha mer informasjon om å dekke eller inkluderte kolonner, kan Du Se Opprette Indekser med Inkluderte Kolonner.
for minneoptimaliserte indekser (både hash og minneoptimalisert nonclustered), ignorer included_columns. Alle kolonnene i tabellen er inkludert i hver minneoptimalisert indeks.
statement nvarchar (4000) Navnet på tabellen der indeksen mangler.

Merknader

Informasjon som returneres av sys. dm_db_missing_index_details, oppdateres når en spørring optimaliseres av spørringsoptimereren, og ikke vedvarer. Manglende indeksinformasjon beholdes bare TIL SQL Server startes på nytt. Databaseadministratorer bør regelmessig ta sikkerhetskopier av den manglende indeksinformasjonen hvis de vil beholde den etter servergjenvinning.

for å finne ut hvilke manglende indeksgrupper en bestemt manglende indeks er en del av, kan du spørre sys.dm_db_missing_index_groups dynamiske ledelsesvisning ved å equijoining den med sys.dm_db_missing_index_details basert på index_handle-kolonnen.

Merk

resultatsettet for DENNE DMV er begrenset til 600 rader. Hver rad inneholder en manglende indeks. Hvis du har mer enn 600 manglende indekser, bør du adressere de eksisterende manglende indeksene, slik at du kan se de nyere.

ved Hjelp Av Manglende Indeksinformasjon I CREATE INDEX-Setninger

hvis du vil konvertere informasjonen som returneres av sys.dm_db_missing_index_details, til EN CREATE INDEX-setning for både minneoptimaliserte og diskbaserte indekser, bør likhetskolonner settes foran ulikhetskolonnene, og sammen skal de lage nøkkelen til indeksen. Inkluderte kolonner skal legges TIL CREATE INDEX-setningen ved HJELP AV INKLUDER-klausulen. Hvis du vil bestemme en effektiv rekkefølge for likestillingskolonnene, bestiller du dem basert på selektiviteten: oppgi de mest selektive kolonnene først (lengst til venstre i kolonnelisten).

Hvis du vil ha mer informasjon om minneoptimaliserte indekser, kan Du se Indekser for Minneoptimaliserte Tabeller.

Transaksjonskonsistens

hvis en transaksjon oppretter eller slipper en tabell, fjernes radene som inneholder manglende indeksinformasjon om de tapte objektene, fra dette dynamiske behandlingsobjektet, og sikrer transaksjonskonsistens.

Tillatelser

PÅ SQL Server krever VIEW SERVER STATE tillatelse .
på SQL Database Basic -, s0-og s1-tjenestemål, og for databaser i elastiske utvalg, er kontoen Server admin eller en Azure Active Directory admin nødvendig. På alle ANDRE SQL Database service-mål kreves VIEW DATABASE STATE – tillatelsen i databasen.

Se Også

Related Post

Leave A Comment