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