非聚集索引插入Showplan运算符 - 缺少?

时间:2012-07-31 15:40:05

标签: sql-server sql-execution-plan

我看过几个执行计划示例,他们显示了“Nonclustered Index Insert Showplan Operator”。我继续创建了一个非聚集索引的表。

如果我插入并显示实际(或估计)执行。计划我看不到这个操作员。只有聚簇索引插入或表插入(取决于结构)。

使用版本SQL Server 2008 R2 Developer Edition。

我错过了什么吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您可能需要插入更多行,以查看显示为单独运算符的非聚集索引维护。

你可以得到一个" wide" (按指数)或" narrow" (每行)计划。

对于狭窄的计划,索引维护不会在计划中显示为单独的运营商。在Management Studio中,您可以右键单击聚集索引插入运算符,然后在属性窗口中展开"对象"节点,以查看此类计划的受影响索引。

所以例如

CREATE TABLE #T(
A INT CONSTRAINT PK PRIMARY KEY, 
B INT CONSTRAINT UQ UNIQUE) 


/*narrow plan*/
INSERT INTO #T 
SELECT 1,1

/*wide plan*/   
INSERT INTO #T 
SELECT DISTINCT number, number
FROM master..spt_values
WHERE number <> 1

DROP TABLE #T

提供以下两个计划

Plans

在第一个计划中展开CI插入运算符的属性窗口显示

Properties