我有一个在PFX,EFF_DT,TERM_DT
上有非聚集索引的表。执行计划显示RID LookUp堆成本为99%,而不是索引扫描。我想知道为什么没有索引扫描不在执行计划中,并且RID LookUp是很好的方法。
SELECT DISTINCT
ID
,PFX
,EFF_DT
,ID1
,TERM_DT
,RULE
,EXP_CAT
,ACCT_CAT
,OPTS
,RULE_ALT
,RULE_ALT_COND
FROM TempMaster
WHERE PFX = 'I004'
ORDER BY EFF_DT DESC
答案 0 :(得分:0)
我想知道索引扫描不在执行计划中的原因
SQLSERVER是一个基于成本的优化器,它试图在合理的时间内选择一个好的计划。
是RID LookUp是好方法
RID查找并不总是一种好方法,因为RID查找是随机搜索,它们会影响IO活动。
如果这个查询每天执行一次,我不担心。如果这个查询更频繁,我会避免通过在非聚集索引中包含这些列来消除looup