我们有以下代码:
select * from View1 where (Timestamp >= @x) and (SomeCode like 'ABC%')
它运行得非常慢。但是代码
select * from View1 where (Timestamp >= @x) (*)
跑得很快。SomeCode like...
过滤器在前面的 (*) 代码上也运行得非常快。因此,两相时速度很快。(View1
是一个 CLR 计算视图。)
问题:如何建议SQL Server 2008 R2 分两个阶段进行查询(更准确地说是两个过滤器),即先Timestamp
过滤器,然后SomeCode
过滤器。
注意:嵌套查询对我们不起作用,它也很慢。