Trình tối ưu hóa truy vấn trong SQL Server có thể đưa ra nhiều đề xuất chỉ mục bị thiếu cho các truy vấn riêng lẻ. Tuy nhiên, phần của SQL Server Management Studio (SSMS) hiển thị các kế hoạch thực hiện trực quan chỉ hiển thị một đề xuất chỉ mục bị thiếu; nó trông giống như một con bọ Tuy nhiên, nhiều đề xuất chỉ mục này có thể nhìn thấy trong SSMS, ví dụ: trong các thuộc tính cho toán tử đầu tiên (ví dụ SELECT
), nhấn F4.
Như bạn cũng đã lưu ý, nhiều đề xuất có thể nhìn thấy trong XML của kế hoạch hoặc các công cụ của bên thứ ba như SQL Sentry Plan Explorer . Nhiều đề xuất cũng sẽ hiển thị trong các DMV chỉ mục bị thiếu (ví dụ: sys.dm_db_missing_index_details )
Truy vấn đơn giản này dẫn đến nhiều đề xuất cho tôi:
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