
正文
oracle存储过程效率慢,oracle存储过程是什么意思
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle存储过程执行速度很慢是什么原因
再次经过任务高峰期比对历史性能差异,排除该进程抢占磁盘资源造成的性能问题,进而忽略IO层面问题。
首先看看,先分析慢的原因,一部分是因为循环次数多,一部分是因为查询数据量大慢。
应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
SQL文的执行效率低。需要对存储过程中每个SQL文的执行效率进行调试。
相关问答
Q1: Oracle批量更新在存储过程中执行很慢,但单独执行很快
1、另外你这种loop写法还不如直接写一个update,反正也没有做到分批提交。
2、简单点理解为update类似行扫描,每一次扫描就做一次子查询,而你的字查询估计是全表扫描,I/O支出比较大,所以比较慢 放入临时表后,减少了扫描量,从而提高了效率。
3、这个可能的原因有很多;首先,execute immediate v_sql语句需要硬解析,这是一个较为耗时的过程,而直接拿出来执行的语句,其查询分析树已经存在,所以只需要软解析。
Q2: oracle存储过程update执行很慢(50多万条需要更新),求大神指点
解决方案1: 这种比较没什么意义。需要注意的一点是,select 涉及的是共享锁, 在nolock提示下可以保证不死锁。update涉及的是更新锁和排他锁,没有锁 提示可以用,在一定条件下会等待很长时间,甚至死锁。
sql语句效率太低 循环次数太多导致慢 数据量过于庞大,导致统计时速度慢等。
更新的数据量不同,解决方案自然也就有差异。同时update几百万数据,这个sql的性能影响在于数据库会做回滚段,以便异常时rollback。由于数据量大,性能就浪费在回滚段上了。
关于oracle存储过程效率慢和oracle存储过程是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








