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.

w usłudze Azure SQL Database Dynamiczne widoki zarządzania nie mogą ujawniać informacji, które mogłyby mieć wpływ na przechowywanie baz danych ani ujawniać informacji o innych bazach danych, do których Użytkownik ma dostęp. Aby uniknąć ujawniania tych informacji, każdy wiersz zawierający dane, które nie należą do podłączonego lokatora, jest filtrowany.

Nazwa kolumny typ danych opis
index_handle int identyfikuje konkretny brakujący indeks. Identyfikator jest unikalny na całym serwerze. index_handle jest kluczem tej tabeli.
database_id smallint identyfikuje bazę danych, w której znajduje się tabela z brakującym indeksem.
object_id Int identyfikuje tabelę, w której brakuje indeksu.
equality_columns nvarchar (4000) rozdzielona przecinkami lista kolumn, które przyczyniają się do predykatów równości w postaci:
tabela.column =constant_value
inequality_columns nvarchar(4000) rozdzielona przecinkami lista kolumn, które przyczyniają się do predykatów nierówności, na przykład predykaty postaci:
tabela.column > constant_value
każdy operator porównania inny niż „=” wyraża nierówność.
included_columns nvarchar (4000) rozdzielona przecinkami lista kolumn potrzebnych do pokrycia kolumn dla zapytania. Aby uzyskać więcej informacji na temat pokrywania lub dołączonych kolumn, zobacz Tworzenie indeksów z dołączonymi kolumnami.
w przypadku Indeksów zoptymalizowanych pod kątem pamięci (zarówno skrótu, jak i zoptymalizowanych pod kątem pamięci) ignoruj included_columns. Wszystkie kolumny tabeli znajdują się w każdym indeksie zoptymalizowanym pod kątem pamięci.
Instrukcja nvarchar (4000) Nazwa tabeli, w której brakuje indeksu.

uwagi

informacje zwracane przez sys. dm_db_missing_index_details są aktualizowane, gdy zapytanie jest zoptymalizowane przez optymalizator zapytań i nie jest utrzymywane. Brakujące informacje o indeksie są przechowywane tylko do momentu restartu serwera SQL. Administratorzy baz danych powinni okresowo tworzyć kopie zapasowe brakujących informacji o indeksie, jeśli chcą je zachować po recyklingu serwera.

aby określić, do których brakujących grup indeksów należy dany brakujący indeks, możesz odpytywać dynamiczny widok zarządzania sys.dm_db_missing_index_groups, ustawiając go za pomocą sys.dm_db_missing_index_details na podstawie kolumny index_handle.

Uwaga

wynik ustawiony dla tego DMV jest ograniczony do 600 wierszy. Każdy wiersz zawiera jeden brakujący indeks. Jeśli masz więcej niż 600 brakujących indeksów, powinieneś zająć się istniejącymi brakującymi indeksami, abyś mógł przeglądać nowsze.

używanie brakujących informacji o indeksie w instrukcjach CREATE INDEX

aby przekonwertować informacje zwracane przez sys.dm_db_missing_index_details na instrukcję CREATE INDEX zarówno dla indeksów zoptymalizowanych pod kątem pamięci, jak i indeksów opartych na dysku, kolumny równości powinny być umieszczone przed kolumnami nierówności i razem powinny stanowić klucz indeksu. Dołączone kolumny należy dodać do instrukcji CREATE INDEX za pomocą klauzuli INCLUDE. Aby określić efektywną kolejność kolumn równości, uporządkuj je na podstawie ich selektywności: najpierw wymień najbardziej selektywne kolumny (najbardziej po lewej stronie na liście kolumn).

aby uzyskać więcej informacji na temat indeksów zoptymalizowanych pod kątem pamięci, zobacz indeksy tabel zoptymalizowanych pod kątem pamięci.

spójność transakcji

jeśli transakcja tworzy lub usuwa tabelę, wiersze zawierające brakujące informacje o indeksie porzuconych obiektów są usuwane z tego dynamicznego obiektu zarządzania, zachowując spójność transakcji.

uprawnienia

na SQL Server wymaga VIEW SERVER STATE uprawnień.
dla celów usługi SQL Database Basic, S0 i S1 oraz dla baz danych w elastycznych pulach wymagane jest konto Server admin lub Azure Active Directory admin. Dla wszystkich innych celów Usługi bazy danych SQL wymagane jest uprawnienie VIEW DATABASE STATE w bazie danych.

Zobacz Też

Related Post