我编写了一个 View ,如果它的连接条件依赖于一个标量函数值。
查询计划保守地期望当函数不变时(至少对于每个完整查询),函数结果可能会在执行之间发生变化。结果每天更改一次左右。
由于行数庞大,查询计划效率低下。我需要一种让 SQL 服务器知道该值不会改变的方法。由于您无法在 View 中声明变量,因此我不确定如何解决该问题。也许查询提示或其他构造会起作用?
我们尝试编写一个表值函数,但似乎没有太大帮助。
这不是一个理想的解决方案,因为我宁愿使用普通 View 。
谢谢
问候
克雷格。
最佳答案
也许您应该考虑将“常量”放入单列表中,该表使用 scheduled stored procedure 定期更新。 .如果您在表列上定义了主键,那么查询计划应该可以正常工作。
关于sql-server - SQL Server 中的常量函数(使用函数的慢 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621672/