引起聚集索引扫描的日期参数

引起聚集索引扫描的日期参数,第1张

引起聚集索引扫描的日期参数

SQL使计划可重用于变量

当您使用变量时-它会编译查询而不会知道您将传递的实际值。即使在此

sql batch
值也是已知的。 但是 它不需要为另一组传递参数重新编译查询

因此,如果您对值进行硬编码-
DB将对其进行编译,以选择针对这些特定值优化的计划(例如,它猜测通过日期检查的预期行数)。这比使用变量“至少不会更糟”。但是DB需要为另一组硬编码的值重新编译它(因为查询的文本已更改),这需要时间,并且垃圾

compiledquery cache
存储量会取代其他有用的查询。

作为:

有什么办法可以消除表扫描但仍然可以使用变量?(PS,它将转换为以@StartDate和@EndDate作为参数的存储过程)

我认为非聚集索引

b.col2
可能是解决方案。此索引的键还可以包含b.pred作为代理键的一部分或包含(
with include(pred)
)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4942870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存