WH.dbo.vw_FactTable
是一个巨大的表 100mill 行具有良好的索引DateKey
这几乎是瞬间运行的:
1.
SELECT COUNT(*)
FROM WH.dbo.vw_FactTable bi
WHERE DateKey >= 20130101 AND
DateKey <= 20130110
这需要两分钟:
2.
SELECT COUNT(*)
FROM WH.dbo.vw_FactTable bi
WHERE CONVERT(DATETIME,CONVERT(CHAR(8),DateKey,112)) >= '01 JAN 2013' AND
CONVERT(DATETIME,CONVERT(CHAR(8),DateKey,112)) <= '10 JAN 2013'
为什么如此不同?
执行计划完全不同 -1
似乎选择Merge Join
:
而2
对于哈希匹配:
有没有明显的方法来调整查询2
?