我有一个查询,它既容易受到参数敏感性的影响,又受表值参数的影响。我很懒,只想用查询提示来解决这个问题。当我懒惰的时候,我可以用 来解决参数敏感性问题OPTION (OPTIMIZE FOR UNKNOWN)
。这给了我三个非常紧密相关的问题:
- 对表值变量
OPTION (OPTIMIZE FOR UNKNOWN)
有影响吗? - 对表值参数
OPTION (OPTIMIZE FOR UNKNOWN)
有影响吗? - 除了 之外,还有哪些查询提示
OPTION(RECOMPILE)
可用于影响表值参数的基数估计?
我自己的实验和文档都表明,这根本没用。表值参数很容易被参数嗅探,但嗅探到的只是基数,所以OPTION (OPTIMIZE FOR UNKNOWN)
应该什么也不做。
至于使用其他表提示的问题,我知道我可以更改对表值参数的操作的估计(例如OPTION (USE HINT ('ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES')
),但我不认为提示可以影响参数本身的基数估计。