Tag: toad

为什么oracle存储过程的执行时间会大大增加,具体取决于它的执行方式?

这是我的问题: 我们有一个名为: HEAVY_SP的存储过程,在所有场景中都使用相同的参数 我们有一个oracle sql开发人员。 这可以称为: IDE 根据执行方式,执行时间会大大增加: (1)直接在查询窗口(IDE )中 CALL HEAVY_SP(0, ‘F’, 5, …) )= 15秒 (我们当前的解决方案) (2)使用IDE = 15秒的特殊按钮 (3)使用dbms_job(预定执行)= 15秒 作业已安排但未执行。 使用IDE执行作业(右键单击并执行) (4)使用dbms_job(即时执行)= 超过01小时,迭代非常慢 (5)从SQL_PLUS(linux)= 超过01小时,迭代很慢 (6)从JAVA = 超过01小时,迭代非常慢 (7)从TOAD = 超过01小时,迭代非常慢 我们吃了很多谷歌页面如下: 为什么此结果一查询,运行速度较慢,在-A-存储过程超在-的查询窗口 甲骨文-PL-SQL过程的运行-慢于SQL Oracle的插入输入-存储过程-非常慢-相比对插入件-运行-手动 存储进程内运行-30-慢通过-java的抗磨合直接上的数据库 所以我的问题是: 为什么Oracle以这种方式行事? 它不应该在所有场景(相同的参数)中表现得快吗? 存储过程必须修改? 如果查询计划,跟踪文件或统计信息显示传送行为,则必须修复存储的prodecure? 为什么在查询窗口中执行速度快? 提前致谢。 [编辑] 遵循@BobJarvis关于统计数据的建议 我们的统计数据是最新的。 甚至,我们重新执行了EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>’SOME_USER’, tabname=>’SOME_TABLE’, cascade => […]