存储过程里有一段insert语句,插入数据量就几条、几十条,之前执行时都是几秒、十几秒的时间,从前几天开始就都变成4分钟左右的样子,请大家分析一下是什么原因导致的。
这段语句拿出来执行也还是几秒钟,不会像4分钟那么长。
语句如下:
EXECUTE IMMEDIATE 'ALTER SESSION FORCE PARALLEL DML PARALLEL 8';
V_SQL :=
'INSERT/*+parallel(4)*/ INTO TAB_1(
...
)
SELECT /*+parallel(4)*/
...
FROM TAB_2';
EXECUTE IMMEDIATE V_SQL; --这一步执行变成了4分钟
COMMIT;
1、大多数情况下很正常,偶尔很慢,则有如下原因
(1)、数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘。
(2)、执行的时候,遇到锁,如表锁、行锁。
2、这条 SQL 语句一直执行的很慢,则有如下原因。
(1)、没有用上索引:例如该字段没有索引;由于对字段进行运算、函数操作导致无法用索引。
(2)、数据库选错了索引。
服务器CPU满了吧
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!