Sql 日期范围之间的查询性能

Sql 日期范围之间的查询性能,sql,sql-server,performance,between,Sql,Sql Server,Performance,Between,我有一个简单的查询来获取两个日期范围之间的日期。它运行大约10秒,但如果可能的话,我想提高它的性能。 提前谢谢 declare @Fst_LY date, @Lst_LY date, @Fst_TY date, @Lst_TY date ---------------------------------------------- set @Fst_TY ='4/1/18' --First day this year set @Lst_TY ='4/30/18' --Last day th

我有一个简单的查询来获取两个日期范围之间的日期。它运行大约10秒,但如果可能的话,我想提高它的性能。 提前谢谢

declare @Fst_LY date, @Lst_LY date, @Fst_TY date, @Lst_TY date

----------------------------------------------
set @Fst_TY ='4/1/18'   --First day this year
set @Lst_TY ='4/30/18'  --Last day this year
----------------------------------------------
set @Fst_LY ='4/2/17'   --First day last year
set @Lst_LY ='5/1/17'   --Last day last year
----------------------------------------------

select distinct  hyp as H
    from myView
where       
([Contract] between  @Fst_LY  and  @Lst_LY)  or ([Contract] between @Fst_TY  and  @Lst_TY)) 

尝试使用union而不是or:

select  hyp as H
        from myView
    where       
     [Contract] between  @Fst_LY  and  @Lst_LY
    union  
    select  hyp as H
        from myView
    where       
     [Contract] between  @Fst_TY  and  @Fst_LY

速度完全取决于您的视图。请显示执行计划,并用您正在使用的任何数据库标记您的问题。谢谢。我没有访问执行计划的权限。我使用的是SQLServertry UNION ALL,如果没有重复项或数据重复就可以了。这将进一步加快处理速度