SQL Server'daki Sorgu İyileştiricisi, tek tek sorgular için birden çok eksik dizin önerisi yapabilir. Ancak SQL Server Management Studio'nun (SSMS) yürütme planlarını görsel olarak görüntüleyen kısmı yalnızca tek bir eksik dizin önerisi görüntüler; bir hata gibi görünüyor. Bununla birlikte, bu çoklu indeks önerileri SSMS'de görülebilir, örneğin ilk operatörün (ör. SELECT
) Özelliklerinde, tuşuna basın F4.
Ayrıca belirttiğiniz gibi, plan XML'inde veya SQL Sentry Plan Explorer gibi üçüncü taraf araçlarında birden çok öneri görünür . Eksik endeks DMV'lerinde birden fazla öneri de görünecektir (örn. Sys.dm_db_missing_index_details )
Bu basit sorgu benim için birden fazla öneriyle sonuçlandı:
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