应用游标优化SQL

一篇关于如何通过优化游标来提高SQL查询性能的文章。内容提及了一个原本需要运行2小时的SQL突然增加到3小时的问题。作者分析了游标的优缺点,并指出在处理大量数据时,游标能减少锁和undo的持有时间。问题在于一个包含hash关联和group by操作的SQL在PGA中执行,导致PGA不足。优化方案是引入临时表,通过游标先定义结果集,再进行处理,最终将耗时降低到5分钟并保持稳定。
摘要由CSDN通过智能技术生成
问题描述:
公司的一个sql平常都是运行一个小时的,突然有一天3个小时还不能出来,
sql如下:
open cursor for SELECT PROVCODE,
       AREACODE,
       COUNT(DISTINCT USERNUMBER) MON_USERCOUNT,
       SUM(LOGINCOUNT) AS MON_TOTALCOUNT
  FROM oss03.OSS_SSOLOGIN_MON_DETAIL A,
       (SELECT B.SITE_ID
          FROM oss03.OSS_SITES_CLASS_INFO B
         WHERE B.SITE_ID <> -1
           AND B.TYPE_ID = 1) C
 WHERE A.MONTHNO = 201104
   AND A.CLIENTIDEXT = C.SITE_ID
   AND A.LOGINSERVICEID = 10
 GROUP BY A.PROVCODE, A.AREACODE
很多人喜欢在游标后面很长的一个查询
这个sql原来跑2个小时,优化完之后5分钟了
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值