【问题标题】:Incorrect indication for column store index in execution plan SQL Server 2012执行计划 SQL Server 2012 中的列存储索引指示不正确
【发布时间】:2015-03-30 07:34:22
【问题描述】:

我有 SQL Server 2012 SP1 开发人员版。我有一个带有单个表的测试数据库,有 10M 行和大约 150 列(大约 133 列是 numeric,其余的是 NVARCHAR

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

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

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

【问题讨论】:

    标签: sql-server sql-server-2012 sql-execution-plan


    【解决方案1】:

    如果它使用列存储,则该节点将显示正确的图标,并且还将被称为“列存储索引扫描”而不是“索引扫描”。

    您能否检查一下您是否真的在该表上没有常规的非聚集索引? (只需在 SSMS 的 Object Explorer 中刷新并展开 dbo.Test_PDMTable 下的 Indexes 节点即可)

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

    更新:

    图标/标签错误的可能原因是:使用旧版本的 SSMS 连接到新版本的 SQL Server。

    【讨论】:

    • 我没有除列存储索引之外的任何其他索引。
    • 也许您正在使用 2008 或更早版本的 SSMS 连接到您的 2012 服务器?这将与您描述的完全一样。
    • 就是这样。是的,我是通过 sql 2008r2 ssms 连接的。我将尝试使用 sql2012 ssms 并查看。希望它能解决问题。您可以使用相同的评论更新您的答案,在 2012 年 ssms 验证后,我将接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2021-07-20
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多