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.
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