asa的in效率分析

 in 比 直接关联效率高
如:
select g.examid as examid,
       g.code_course as code_course,
       i.sackid as sackid,
       g.permitid as permitid,
       g.name_cn as name_cn,
       g.inputno as inputno,
       g.operator as operator,
       convert(integer,g.smallid) as smallid,
       g.grademark as grademark
from exam_grade_small g,
     exam_stusackinfo i
where  g.examid = 1
  and g.code_course = '002'
  and (g.operator='9999' or g.operator='8888')
  and g.examid = i.examid
  and g.code_course = i.code_course
  and g.permitid between i.startpermitid and i.endpermitid
  and exists(
select 1 from
(select a.examid,a.code_course,a.permitid,a.smallid
  from exam_grade_small a
 where a.examid = 1
   and a.code_course = '002'
   and (a.operator='9999' or a.operator='8888')
group by a.examid,a.code_course,a.permitid,a.smallid
 having count(distinct a.grademark) > 1 or count(distinct a.operator) = 1) h
where
g.examid = h.examid
  and g.code_course = h.code_course
  and g.permitid = h.permitid
  and g.smallid = h.smallid
)
--执行时间0.078秒

select g.examid as examid,
       g.code_course as code_course,
       i.sackid as sackid,
       g.permitid as permitid,
       g.name_cn as name_cn,
       g.inputno as inputno,
       g.operator as operator,
       convert(integer,g.smallid) as smallid,
       g.grademark as grademark
from exam_grade_small g,(select a.examid,a.code_course,a.permitid,a.smallid
  from exam_grade_small a
 where a.examid = 1
   and a.code_course = '001'
   and (a.operator='9999' or a.operator='8888')
group by a.examid,a.code_course,a.permitid,a.smallid
 having count(distinct a.grademark) > 1 or count(distinct a.operator) = 1) h,
     exam_stusackinfo i
where g.examid = h.examid
  and g.code_course = h.code_course
  and g.permitid = h.permitid
  and g.smallid = h.smallid
  and g.examid = 1
  and g.code_course = '001'
  and (g.operator='9999' or g.operator='8888')
  and h.examid = i.examid
  and h.code_course = i.code_course
  and h.permitid between i.startpermitid and i.endpermitid

--执行时间超过30秒

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值