暂无图片
oracle 有个存储过程之前执行,效率正常,一般5分钟左右执行完,重新导入数据然后执行时发现执行时间需要30分钟才能执行完,是什么因素会影响?
我来答
分享
暂无图片 匿名用户
oracle 有个存储过程之前执行,效率正常,一般5分钟左右执行完,重新导入数据然后执行时发现执行时间需要30分钟才能执行完,是什么因素会影响?
暂无图片 5M

oracle 有个存储过程之前执行,效率正常,一般5分钟左右执行完,重新导入数据然后执行时发现执行时间需要30分钟才能执行完,是什么因素会影响?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
刘晓华

一般来说是数据发生了变化,统计信息没及时收集,导致存储过程里的SQL执行计划发生了改变,从而导致执行性能降低,建议先收集一次相关表的统计信息,然后再执行看有没提升

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
薛晓刚

可能是原来存在全表读的情况,数据量增加,全表读时间线性增加。

SQL要进行改善,可以提高效率。

暂无图片 评论
暂无图片 有用 0
打赏 0
晨辉

检查下里面的重点SQL,看下是不是执行计划发生了变化
也可能导入数据后没有收集统计信息,执行计划不准确。

暂无图片 评论
暂无图片 有用 0
打赏 0

怎么理解你的重新导入?
先 TURNCATE 表
然后 IMP 导入数据
你的意思 重新导入的数据量跟以前的数据量是一样多的.

假设是这样的说的话,那么就涉及了统计信息发生了变化,
统计信息发生了变化,导致SQL执行计划的发生变化.
比如原来走索引的,现在走全表.
原来走全表的,走索引.

每次导入新数据后,要立即收集下统计信息.

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏