T-SQL是否存在禁止键查找的索引提示,且不强制指定特定索引
T-SQL是否有索引提示可排除需键查找的非聚集索引?
不存在专门的T-SQL索引提示,能直接实现「仅允许使用无需键查找的非聚集索引,同时让查询优化器自由选择符合条件的索引」这个需求。
具体原因如下:
FORCESEEK仅强制使用索引查找而非扫描,但无法阻止优化器选择需要键查找的非聚集索引——它只会改变索引的访问方式,不会过滤掉需要后续键查找的索引本身。WITH (index(...))这类提示需要指定具体索引,不符合你希望优化器自由选择的要求;NOINDEX则是排除特定索引,也无法动态筛选出所有无需键查找的选项。- 其他现有提示(如
FORCEORDER、MAXDOP)都是针对执行计划的其他维度,没有聚焦于“排除需键查找的非聚集索引”这一特定规则。
你提到已经考虑过创建覆盖索引、优化统计信息、重写查询等常规方法,这些确实是解决键查找问题的主流方案,但从纯索引提示的角度,目前T-SQL没有提供直接满足你需求的选项。
内容的提问来源于stack exchange,提问作者Ed Avis
相关产品推荐
相关产品推荐

