Gio*_*rgi 15 index sql-server execution-plan
如果您使用“包括实际执行计划”运行查询,该计划还将建议缺少的索引。索引详细信息MissingIndexes位于 XML 中的标记内。是否存在计划包含多个索引建议的情况?我尝试了不同的 sql 查询,但无法提出任何生成两个或多个缺失索引的查询。
wBo*_*Bob 28
SQL Server 中的查询优化器可以为单个查询提供多个缺失索引建议。但是,SQL Server Management Studio (SSMS) 中显示执行计划的部分仅显示一个缺失的索引建议;它看起来像一个错误。然而,这些多索引建议在 SSMS 中是可见的,例如在第一个运算符的属性中(例如SELECT),按F4。
正如您还注意到的,在计划 XML 或第三方工具(如SQL Sentry Plan Explorer )中可以看到多个建议。多个建议也将在缺失的索引 DMV 中可见(例如sys.dm_db_missing_index_details)
这个简单的查询为我带来了多项建议:
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;
Run Code Online (Sandbox Code Playgroud)
HTH