plsqldeveloper7调试的缓慢 大量的pipe get等事件

本文介绍了一个Oracle 10g环境中针对月登录统计数据查询的过程优化案例。通过替换日期函数为直接的数字比较,显著提升了游标的提取速度。文章还讨论了在处理大量数据时可能遇到的性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 是10g 10.2.3 

主要是调试一个软件包中的过程

  cursor cur_mont_lis_resutl is  --计算月登录人数和次数
         SELECT 
            PROVCODE,
            AREACODE,
            VENDER_ID,
            OPERATE_TYPE_ID,
            count(USERNUMBER) as use_pepo_mon,
            count(distinct usernumber) as  use_time_day
    from oss_openplat_truslogin_monlst
    where stats_date >= date_num(g_month_first_day)
    and   stats_date < g_run_day_n+1
      group by         
            PROVCODE,
            AREACODE,
            VENDER_ID,
            OPERATE_TYPE_ID;

//提取游标的时候非常慢, 该表有上百万的数据.当这不是主要问题 因为运行此过程前已经调试经过了 原始表抽取,日表的统计.反而这月表慢.

open cur_mont_lis_resutl;
   loop
     fetch cur_mont_lis_resutl bulk collect into   --计算月登录人数和次数
      l_ARY_provcode,
      l_ARY_areacode,
      l_ARY_vender_id,
      l_ARY_operate_type_id,
      l_ARY_use_pepo_mon,
      l_ARY_use_time_mon
     limit g_batch_size_n;


最后发现使用了date_num(g_month_first_day) 这个软件包的函数 导致非常缓慢
直接换成数字和内联函数 就OK了 深入的原因未知啊
 to_number(to_char(g_month_first_day,'yyyymmdd')) 
20111201

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值