谁能告诉哪些数据库服务器属性会影响列存储索引批处理执行?
问问题
1772 次
1 回答
1
正如所问的那样,这个问题太宽泛了。有许多影响批处理执行的“数据库服务器”属性。一个明显的需要看的是数据库兼容性级别,女巫文件对批处理执行的影响:
在120级:
具有列存储索引的表上的排序处于行模式
窗口函数聚合以行模式运行,例如 LAG 或 LEAD
使用在行模式下操作的多个不同子句的列存储表查询
在 MAXDOP 1 下运行的查询或在 Row 模式下执行串行计划的查询
在130级
具有列存储索引的表上的排序现在处于批处理模式
窗口聚合现在以批处理模式运行,例如 LAG 或 LEAD
对具有多个不同子句的列存储表的查询以批处理模式运行
在 Maxdop1 下运行的查询或在批处理模式下执行串行计划的查询
这只是冰山一角。“数据库服务器属性”的另一个示例是traceflag 4199,它会影响许多查询优化器修复,其中一些与批处理模式相关。可用服务器内存影响批处理模式。可用的 CPU 数量会影响批处理模式。数据大小和基数估计会影响批处理模式。
所以,真的,你必须把问题缩小到具体的问题。
至于标题问题“如何改进列存储扫描”,最大的收获是段消除。阅读了解段消除。
但是,首先,了解如何解决性能问题。阅读如何分析 SQL Server 性能。根本原因是你的问题。您可能需要更多 RAM,而不是不同的索引。措施。
于 2016-06-09T09:05:43.930 回答