您的位置:程序门 -> oracle -> 开发



关于存储过程在同一环境下执行效率时快时慢的解决方法,请高手指教!在线等


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于存储过程在同一环境下执行效率时快时慢的解决方法,请高手指教!在线等
发表于:2007-03-09 10:42:46 楼主
有一个存储过程平均每天要处理60多万条数据,正常情况下5分钟左右能执行完毕,但是不知什么原因,现在要将近五个小时才能执行完毕。
第一,服务器硬件环境一样。
第二,操作系统liux+oracle   10g
第三,同一个存储过程
第四,处理同一批数据
症状:在以上条件相同的情况下,时快时慢,快的时候5分钟,慢的时候5个小时
在这期间里,以上四种条件没有任何变化。
不知道是什么原因,希望有经验的高手,帮忙想想办法。
我就不明白,为什么同一个过程,同一批数据,同一个执行环境,为什么时快时慢!
急!!!在线等!
发表于:2007-03-09 11:28:251楼 得分:0
你的现象说的太泛泛了:)
影响过程执行速度的原因很多:
比如:
1.比如过程操作的表正在被别人操作,那么过程就要等待,速度就慢了
2.你处理的数据过多导致临时回滚段大小不够   正在扩充那么也会使速度变慢
3.系统可能正在处理重做日志文件
4.数据库服务器所在机器正在处理不同的事情   导致cpu使用的争抢:)
5.网络问题
6.....
等等不一而足   ,所以单从你说的现象是不能确定问题所在的
发表于:2007-03-09 11:29:182楼 得分:0
ps:60多万条数据对与oracle来说并不大,影响速度的原因有服务器硬件和数据库配置和过程的编码
发表于:2007-03-09 13:45:443楼 得分:0
谢谢两位指教,针对baojianjun(包子)   你说的几点原因,我解释一下,
第一,这台服务器只有我一个人在用,不会存在别人使用这种可能。
第二,处理的数据过多导致临时回滚段大小不够   正在扩充那么也会使速度变慢,在这里我的程序都是每处理完100条就提交一次事务,应该不会有问题.
第三,系统可能正在处理重做日志文件,这个原因我不太确定!!
第四,这台机器上面只有oracle在运行,cpu占用也监测过,cpu和内存占用都非常的少,不会出现cpu使用的争抢
第五,网络问题,这个程序是在这台服务器上本地运行的,不是远程调用的
还有就是如果是存储过程编码的问题,那么为什么,同样的编码处理同样的数据,昨天很快,今天很慢,出现这种时快时慢的现像呢?这种现像会跟编码有关系吗?
另外这个过程在另外一台服务器也同进运行着,那台服务器是windows+oracle9i的,一切正常!
所以我觉得至少根编码没关系,应该就是系统环境和oracle配置的问题。

另外还有一个奇怪的现像就是,我的windows+oracle9i这台机器的oracle的表空间占用是五个数据文件都是2g一个,每个占用都是70%左右很平均。
但是liux+oracle10g那台服务器,也是五个数据文件都是2g一个。每个占用情况很奇怪,有一个占用是85%,一个占用是45%,还有一个占用是-45%(负的,奇怪呀),还有就是百分之十几的,这种不平均情况,不知道会不会是这个原因造成的数据库时快时慢呢?
发表于:2007-03-09 13:56:224楼 得分:0
关注……
发表于:2007-03-09 14:04:575楼 得分:0
在线等,有经验的高手帮帮我呀
发表于:2007-03-09 16:03:096楼 得分:0
怎么没有人回答呀!!!555555555
发表于:2007-03-09 16:26:007楼 得分:0
来人呀,救命呀!!!
发表于:2007-03-12 17:37:528楼 得分:0
我也不太懂,但建议在慢的时候,看看是否有等待和死锁发生。
发表于:2007-03-13 07:54:029楼 得分:0
我想
lz每天做一下全库的收集统计分析数据
可能会好起来


快速检索

热门点击