执行计划 SQL Server 2012 中列存储索引的指示不正确

Incorrect indication for column store index in execution plan SQL Server 2012

我有 SQL Server 2012 SP1 开发者版。我有一个带有单个 table 的测试数据库,它有 1000 万行和大约 150 列(大约 133 列是 numeric,其余的是 NVARCHAR

我正在试验列存储索引性能并将其与无索引方案进行比较。

我看到的是我在其中创建列存储索引的数据库,当我查看图形执行计划时,它没有显示列存储操作的图标,而是显示常规索引扫描。因为我在列存储上只有一个索引而没有其他 non/clustered 索引,所以我相信该索引正在用作列存储。

所以我的问题是,是不是我的环境出了问题,没有显示正确的图标,或者我在这里遗漏了其他任何东西。

如果它使用列存储,节点将显示正确的图标,并且还将被称为 "Columnstore Index Scan" 而不是 "Index Scan"。

你能检查一下你在 table 上确实没有常规的非聚集索引吗? (在SSMS的Object Explorer中刷新并展开dbo.Test_PDMTable下的Indexes节点即可)

我相信您会在那里看到 Cs_NcIdx_Test1 索引,它在方括号中表示:(非唯一,非聚集)。 列存储索引应该改为 (Non-Clustered, Columnstore)。

更新:

A possible reason of a wrong icon/label could be: using an older version of SSMS to connect to a newer version of SQL Server.