首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么优化这个查询

2013-08-01 
如何优化这个查询我有个查询,大概是这样的。主要是这个WHERE里的子查询,如何优化呢由于业务需要,这个查询,

如何优化这个查询
我有个查询,大概是这样的。
主要是这个WHERE里的子查询,如何优化呢
由于业务需要,这个查询,要在一个存储过程里执行7,8次,所以现在速度较慢。。
求大家指点。。谢谢


select xx,cc,vv,bb,nn from table A
join ..... B
join ..... C
join ..... D
where ((A.Sign_Man = @curMan ) 
  or ( A.filed IN 
        (SELECT Stat_No FROM SystemInfo..Info_HR2Stat 
         WHERE HR_No = @curMan AND State = 1) and A.Sign_Man <> @curMan  )
  or  ((dbo.aFunc(B.CurYear,B.CurMonth,B.Gs_No)=@curMan ) and A.Sign_Man <> @curMan
        and A.filed not IN 
        (SELECT Stat_No FROM C
        WHERE HR_No = @curMan AND State = 1)))

[解决办法]
把where后面的or条件中的子查询结果集存入临时表,然后关联临时表去查询。

热点排行