ITPub博客

首页 > 应用开发 > IT综合 > 一个过程跑的异常慢而无结果却没有找到原因所在

一个过程跑的异常慢而无结果却没有找到原因所在

原创 IT综合 作者:gugu99 时间:2007-12-24 21:35:45 0 删除 编辑
一个过程跑的异常慢而无结果却没有找到原因所在

一个过程跑的异常慢而无结果却没有找到原因所在

昨天有个过程从凌晨0点跑到下午5:30 都没有跑完. 它是个移数据的过程.每一万条移一次.
它运行过程中只移动了一次 数据量为5337条.后来观察该Sessin 一直在跑insert int 然后就是delete frm
循环地跑,就是在备份表看不到增加的数据.

先介绍下情况: RUN_SENDINF 每天产生100万-200万的数据,也就是INSERT和UPDATE事务量大. 该表存放了3天内的数据,
也就是600万.每过一天就把三天前的数据移到历史表中. 发生情况头两天运行半年正常的过程,突然运行失败,
主要是ORA-08102: index key not found, obj# 51692, file 6, block 153602 (2).
为此 开发人员把RUN_SENDINFO 该了个名 然后新建了个RUN_SENDINFO 把原来RUN里的数据重新分开了移动.
而该事第二天过程只跑了1:11分

该过程简要说明:
1给大家看的过程是主要部分
2该过程取最大和最小REQID 目的是分批插入
3 REQID值是数字型而且不连续差异很大 也就是最小跟最大之间有上千万,实际数据量也就是200万.
CREATE R REPLACE PRCEDURE PR_BAK_SENDINFO
insert int sms_enginee_task_lg(bak,bak_begin_time,date_time) values(1,sysdate,t_char(currDate,'yyyy-mm-dd'));
cmmit;
ldateTime := sysdate - 3;
ldateTimeStr := t_char(ldateTime,'yyyy-mm-dd') || ' 23:59:59';

select NVL(max(reqid),0) int maxId frm RUN_SENDINFO

--
最大reqid
where ldate<=t_date(ldateTimeStr,'yyyy-mm-dd HH24:MI:SS');
select NVL(min(reqid),0) int minId frm RUN_SENDINFO
--
最小reqid
where ldate<=t_date(ldateTimeStr,'yyyy-mm-dd HH24:MI:SS');


status := 1;


tempId := NVL(minId,0);


perN := 10000;


while status = 1


Loop


exit when status = 0;


tempId := tempId + perN; ---
每一万条插一次
insert into HIS_SENDINFO select * frm RUN_SENDINFO
--
把数据备份到备份表
where reqid<=tempId and ldate<=t_date(ldateTimeStr,'yyyy-mm-dd HH24:MI:SS');
delete frm RUN_SENDINFO where reqid<=tempId and ldate<=t_date(ldateTimeStr,'yyyy-mm-dd HH24:MI:SS');
cmmit;
--
删除已备份数据


IF (tempId > maxId) THEN




status := 0;


END IF;


END LP;


--
任务完成标志

update sms_enginee_task_lg set bak=2,bak_finish_time=sysdate where date_time=t_char(currDate,'yyyy-mm-dd');


cmmit;

END PR_BAK_SENDINFO;

看它的等待事件:direct path read temp ;latch: cache buffers chains ; latch free
历史等待事件
direct path read temp

看它的排序空间: SELECT *
FRM
V$SQL_WRKAREA_ACTIVE WHERE SQL_HASH_VALUE=3267319001

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10748419/viewspace-995684/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3121
  • 访问量
    2643809