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.

Azure SQL-tietokannassa dynaamiset hallintanäkymät eivät voi paljastaa tietoja, jotka vaikuttaisivat tietokannan hallintaan tai paljastaa tietoja muista tietokannoista, joihin käyttäjällä on pääsy. Jotta näitä tietoja ei paljastettaisi, jokainen rivi, joka sisältää tietoja, jotka eivät kuulu kytkettyyn vuokralaiseen, suodatetaan pois.

sarakkeen nimi tietotyyppi kuvaus
index_handle int yksilöi tietyn puuttuvan indeksin. Tunniste on yksilöllinen koko palvelimella. index_handle on tämän taulukon avain.
database_id smallint yksilöi tietokannan, jossa puuttuvan indeksin sisältävä taulukko sijaitsee.
object_id int ilmoittaa taulukon, jossa indeksi puuttuu.
equality_columns nvarchar(4000) pilkulla erotettu luettelo sarakkeista, jotka edistävät yhtäläisyyden predikaatteja muodossa:
taulukko.sarake = constant_value
inequality_columns nvarchar(4000) pilkulla erotettu luettelo sarakkeista, jotka edistävät epäyhtälön predikaatteja, esimerkiksi predikaatit muodossa:
taulukko.sarake > constant_value
mikä tahansa muu vertailuoperaattori kuin ” = ” ilmaisee epäyhtälöä.
included_columns nvarchar(4000) pilkulla erotettu luettelo sarakkeista, joita tarvitaan kyselyn peittäviksi sarakkeiksi. Lisätietoja kattavista tai sisältävistä sarakkeista on ohjeaiheessa indeksien luominen sisältyvillä sarakkeilla.
muistioptimoiduille indekseille (sekä hash-että muistioptimoiduille nonclustered-indekseille), ohita included_columnit. Taulukon kaikki sarakkeet sisältyvät jokaiseen muistiin optimoituun indeksiin.
lausunto nvarchar (4000) sen taulukon nimi, josta indeksi puuttuu.

huomautukset

SYS.dm_db_missing_index_detailsin palauttamat tiedot päivitetään, kun kyselyn optimoija on optimoinut kyselyn, eikä sitä jatketa. Puuttuvat indeksitiedot säilytetään vain, kunnes SQL Server käynnistetään uudelleen. Tietokannan ylläpitäjien tulisi tehdä säännöllisesti varmuuskopioita puuttuvista indeksitiedoista, jos he haluavat säilyttää ne palvelimen kierrätyksen jälkeen.

selvittääksesi, mihin puuttuviin indeksiryhmiin jokin puuttuva indeksi kuuluu, voit kysellä SYS. dm_db_missing_index_groups dynamic management-näkymää yhtäaikaisesti sen kanssa SYS. dm_db_missing_index_details perustuen index_handle-sarakkeeseen.

Huomautus

tämän DMV: n tulosjoukko on rajoitettu 600 riviin. Jokainen rivi sisältää yhden puuttuvan indeksin. Jos sinulla on yli 600 puuttuvaa indeksiä, sinun pitäisi käsitellä olemassa olevia puuttuvia indeksejä, jotta voit tarkastella uudempia.

käyttämällä puuttuvaa Indeksitietoa CREATE INDEX Statements

sys.dm_db_missing_index_detailsin palauttamaa tietoa CREATE INDEX statementiksi sekä muisti-optimoiduille että levypohjaisille indekseille, tasa-arvo-sarakkeet tulisi laittaa epäyhtälön sarakkeiden eteen, ja yhdessä niiden tulisi muodostaa indeksin avain. Mukana olevat sarakkeet lisätään CREATE INDEX-lausekkeeseen INCLUDE-lauseketta käyttäen. Jos haluat määrittää tasa-arvo-sarakkeiden tehokkaan järjestyksen, järjestä ne niiden valikoivuuden perusteella: luetteloi valikoivimmat sarakkeet ensin (sarakeluettelon vasemmanpuoleisin).

lisätietoja muistioptimoiduista indekseistä on Muistioptimoitujen taulukoiden indekseissä.

Tapahtuman johdonmukaisuus

jos tapahtuma luo tai pudottaa taulukon, rivit, jotka sisältävät puuttuvia indeksitietoja pudotetuista kohteista, poistetaan tästä dynaamisesta hallintaobjektista, säilyttäen tapahtumien johdonmukaisuuden.

käyttöoikeudet

SQL Server-palvelimella, vaatii VIEW SERVER STATE luvan.
SQL-tietokannan Basic -, S0-ja S1-palvelutavoitteissa sekä elastic poolien tietokannoissa vaaditaan Server admin tai Azure Active Directory admin – tili. Kaikkiin muihin SQL-tietokantapalvelun tavoitteisiin tarvitaan VIEW DATABASE STATE – lupa tietokannassa.

Katso Myös

Related Post

Leave A Comment