Udostępnij za pośrednictwem


About the Missing Indexes Feature

Brak funkcji indeksów używa obiektów dynamicznego zarządzania i plan wykonania do dostarczania informacji dotyczących brakujących indeksy, które mogą zwiększyć SQL Server kwerendy wydajności.

Components

optymalizator kwerendy generuje plan kwerend, analizuje, jakie są najlepsze indeksów dla warunku określonego filtru.Najlepsze indeksów istnieją, optymalizator kwerendy generuje plan kwerend suboptimal, ale nadal są przechowywane informacje o tych wskaźników.Brak funkcji indeksów umożliwia uzyskanie dostępu do informacji dotyczących tych wskaźników tak, aby zdecydować, czy powinny one zostać wykonane.

Brak funkcji indeksów składa się z następujących składników:

  • Zestaw obiektów dynamicznego zarządzania, które mogą być kierowane kwerendy w celu zwracania informacji o brakujących indeksów.

  • The MissingIndexes element in XML Showplans, which correlate indexes that the optymalizator kwerendy considers missing with the queries for which they are missing.

Składniki brakujących funkcji indeksów opisano szczegółowo w poniższych sekcjach.

Obiekty zarządzania dynamicznym

Po uruchomieniu typowe obciążenie na SQL Server, można pobrać informacji o brakujących indeksów za pomocą kwerend wysyłanych do obiektów dynamicznego zarządzania wymienione w poniższej tabela. Te obiekty dynamicznego zarządzania są przechowywane w wzorzec bazy danych.

Dynamiczne zarządzanie obiektu

Informacje zwrócone

sys.dm_db_missing_index_group_stats (Transact-SQL)

Zwraca informacje zbiorcze dotyczące brakujących indeks grupy, na przykład, może zostać uzyskane za pomocą implementacji określonej grupie Brakujące indeksów poprawę wydajności.

sys.dm_db_missing_index_groups (języka Transact-SQL)

Zwraca informacje o określonej grupie Brakujące indeksy, takie jak identyfikator grupy i identyfikatory wszystkich brakujących indeksy, które są zawarte w tej grupie.

sys.dm_db_missing_index_details (Transact-SQL)

Zwraca szczegółowe informacje na temat indeksu brakujące; na przykład, zwraca nazwę i identyfikator tabela, których indeks brakuje, kolumn i typów kolumn tworzących powinny Brak indeksu.

sys.dm_db_missing_index_columns (Transact-SQL)

Zwraca informacje o bazie danych kolumny tabela, których brakuje indeksu.

Można użyć informacji zwracanych przez te obiekty dynamicznego zarządzania, narzędzi lub skryptów, w których do generowania instrukcji CREATE INDEX DDL implementujące indeksów brakujące informacje.

Spójność transakcji

Zmiany w poszczególnych wierszy w tych obiektach dynamicznego zarządzania nie są spójne transakcyjnie.Oznacza to jeśli kwerenda zostanie przerwana lub otaczający transakcja jest cofana, wiersze, które zawierają informacje o brakujących indeksów dla tej kwerendy będą nadal istnieją.

Obsługiwane są tylko całej transakcji.Punkty kontrolne i wycofywanie zmian częściowych nie są obsługiwane.

Uwaga

Zmiana metadane w tabela wszystkie brakujące informacje indeksu o tej tabela jest usuwany z tych obiektów dynamicznego zarządzania.Zmiany metadane tabela może występować, gdy kolumna są dodane lub usunięte z tabela, na przykład, lub gdy indeks jest tworzony kolumna tabela.

Element XML plan wykonania MissingIndexes

Aby skorelować kwerendy z brakującymi indeksy, które są identyfikowane w wynikach obiektu dynamicznego zarządzania, można wyświetlić MissingIndexes element Showplans XML.The MissingIndexes element is illustrated in the following example:

<ShowPlanXML…>

 <BatchSequence>

  <Batch>

   <Statements>

    <StmtSimple…>

     <StatementSetOptions… />

      <QueryPlan…>

       <MissingIndexes>

        <MissingIndexGroup Impact="22.8764">

         <MissingIndex Database="[ADVENTUREWORKS]" Schema="[Person]" Table="[Address]">

          <ColumnGroup Usage="EQUALITY">

           <Column Name="[PostalCode]" ColumnId="4" />

          </ColumnGroup>

          <ColumnGroup Usage="INEQUALITY">

           <Column Name="[ModifiedDate]" ColumnId="5" />

          </ColumnGroup>

          <ColumnGroup Usage="INCLUDE">

           <Column Name="[AddressLine1]" ColumnId="2" />

           <Column Name="[AddressLine2]" ColumnId="3" />

           <Column Name="[StateProvinceID]" ColumnId="1" />

          </ColumnGroup>

         </MissingIndex>

        </MissingIndexGroup>

       </MissingIndexes>

Informacje zawarte w MissingIndexes element może pomóc określić, jakie indeksów może zwiększyć wydajność określonej kwerendy opisanych w StmtSimple element, który zawiera Transact-SQL samą deklarację. Następnie korzystając z informacji zwracana dla tego elementu, można napisać instrukcja CREATE INDEX DDL.

Włączanie i wyłączanie funkcji Brak indeksy

Brak funkcji indeksów jest włączona domyślnie.Bez kontroli są dostarczane, aby włączyć lub wyłączyć lub zresetować tabele zwracane, gdy obiekty dynamicznego zarządzania są badane.Kiedy SQL Server jest ponownie uruchamiany, wszystkie brakujące informacje o indeksach przerwaniu.

Tę funkcję można wyłączyć tylko jeśli wystąpienie SQL Server Uruchomiono za pomocą -x argumentu z Sqlservr narzędzie wiersza polecenia.Aby uzyskać więcej informacji zobaczsqlservr Application.