帮忙一个查询语句的优化!谢谢
select   hzjxsdm,isnull(kkyh, ' ')   as   kkyh,max(hzjxsmc)   as   hzjxsmc,max(sf)   as   sf,isnull(count(*),0)   as   sl, 
 isnull(sum(ygje),0)   as   sumygje,isnull(sum(ysbj),0)   as   sumysbj, 
 isnull(sum(yslx),0)   as   sumyslx   from    
 (select   a.khmc,a.hzjxsdm,a.hzjxsmc,a.sf,a.hth,a.ysbj,a.yslx,a.ygje,a.qs, 
 case   when   charindex( '十堰 ',kkyh)> 0   and   (charindex( '建设 ',kkyh)> 0   or   charindex( '建行 ',kkyh)> 0)then    
  '中国建设银行股份有限公司十堰分行 '   when   isnull(kkyh, ' ')= ' '   then    '统一扣款 '   else   kkyh   end   kkyh,b.kkyhzh   from   ht   b   with(nolock),   ysygmx   a   with(nolock)    
    where   a.yxbz= '1 '   and   b.yxbz= '1 '   and   a.hth=b.hth   and   convert(char(6),a.hkrq,112)= '200709 ' 
    and   b.hzjxsdm   in(select   hzjxsdm   from   gcxxtz   with(nolock)where   cxbz   = '柳汽 '   and   yxbz= '1 ')   )   a   group   by   hzjxsdm,isnull(kkyh, ' ')    
 order   by   hzjxsdm      
    这个查询语句执行时需要1分12秒。如果去掉and   b.hzjxsdm   in(select   hzjxsdm   from   gcxxtz   with(nolock)where   cxbz   = '柳汽 '   and   yxbz= '1 ')   需要1秒钟。   怎么样修改才可以加快速度!!谢谢大家 
          ht   b   15W条数据 
       ysygmx   a   31W条数据 
 gcxxtz   1000条数据!
------解决方案--------------------and b.hzjxsdm in(select hzjxsdm from gcxxtz with(nolock)where cxbz = '柳汽 ' and yxbz= '1 ')     
 ==>    
 and exists(select 1 from gcxxtz with(nolock) where cxbz = '柳汽 ' and yxbz= '1 ' and hzjxsdm=b.hzjxsdm)