【发布时间】:2015-04-03 18:04:11
【问题描述】:
下面是解释我的表格和情况的链接:
比较两种情况,一种是使用列存储索引运行查询,另一种是在简单堆上运行查询。当我比较这两个结果时,我观察到即使使用列存储的查询比另一种情况执行得更好,但只是在堆上运行。 但是,使用列存储索引的查询涉及物理读取 (1),而原始读取则没有。
两个查询具有相同的执行计划。此外,我在暖缓冲区和冷缓冲区中都运行查询。在冷缓冲区中,原始查询需要 4 次物理读取,而在警告缓冲区中,它需要 0 次物理读取。 但是,使用列存储索引的查询行为保持不变。这背后有什么特别的原因吗?
【问题讨论】:
-
请参阅"Should questions include “tags” in their titles?",其中的共识是“不,他们不应该”!
-
@AndreasNiedermair - 感谢您编辑它。我的错,我错过了。
-
不用担心 - 没问题 :)
-
我观察到类似的事情。即使有空间缓存整个索引,SQL Server 有时也无法充分利用缓存内存来缓存列存储索引。我不知道这是什么原因,我认为这是一个错误。很难复制。例如,当服务器重新启动时消失。
标签: sql-server database-indexes columnstore