Plan wykonania z wieloma brakującymi indeksami


15

Jeśli uruchomisz zapytanie z „Uwzględnij rzeczywisty plan wykonania”, plan zasugeruje również brakujące indeksy. Szczegóły indeksu znajdują się wewnątrz MissingIndexesznacznika w pliku XML. Czy zdarza się sytuacja, gdy plan zawiera wiele propozycji indeksu? Próbowałem różnych zapytań SQL, ale nie mogłem znaleźć żadnego zapytania, które generuje dwa lub więcej brakujących indeksów.

Odpowiedzi:


27

Optymalizator zapytań w programie SQL Server może tworzyć wiele brakujących sugestii dotyczących indeksów dla poszczególnych zapytań. Jednak część SQL Server Management Studio (SSMS), która wyświetla plany wykonania, wyświetla tylko jedną sugestię brakującego indeksu; wygląda jak błąd. Jednak te sugestie dotyczące wielu indeksów są widoczne w SSMS, np. We właściwościach pierwszego operatora (np. SELECT) Naciśnij F4.

Wyświetlanie wielu brakujących sugestii indeksu w SSMS

Jak już zauważyłeś, wiele sugestii jest widocznych w XML planu lub w narzędziach innych firm, takich jak SQL Sentry Plan Explorer . Wiele sugestii będzie również widocznych w brakujących indeksach DMV (np. Sys.dm_db_missing_index_details )

To proste zapytanie spowodowało dla mnie wiele sugestii:

USE tempdb
GO

SET NOCOUNT ON
GO

IF OBJECT_ID('dbo.t1') IS NOT NULL DROP TABLE dbo.t1
CREATE TABLE dbo.t1
(
    rowId INT IDENTITY
)
GO

IF OBJECT_ID('dbo.t2') IS NOT NULL DROP TABLE dbo.t2
CREATE TABLE dbo.t2
(
    rowId INT IDENTITY
)
GO


INSERT INTO dbo.t1 DEFAULT VALUES
GO 100000

INSERT INTO dbo.t2 DEFAULT VALUES
GO 100000



SELECT *
FROM dbo.t1 t1
    INNER JOIN dbo.t2 t2 ON t1.rowId = t2.rowId
WHERE t2.rowId = 999;

HTH

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.