2 hexianglian 229 hexianglian_229 于 2015.05.28 23:24 提问

oracle 存储过程执行时快时慢

写了一个存储过程,是一系列查询、处理然后入库,第一次执行的数据比第二执行的数据多一半,为什么,第二次执行的速度反而比第一次慢2倍多呢?(同一台服务器,历史数据同样多)

9个回答

u013339787
u013339787   2015.05.29 08:43

建议调试一下存储过程,一步一步跟踪,查看每个步骤的数据是否正确,查看两次运行的时间差在那里,然后再修改。

hexianglian_229
hexianglian_229 嗯嗯
2 年多之前 回复
qq_28567295
qq_28567295   2015.05.28 23:29

系统中有另外的大量的操作在执行

hexianglian_229
hexianglian_229 谢谢了哈,,问题已解决,就是资源被占用啦
2 年多之前 回复
lzp_lrp
lzp_lrp   Ds   Rxr 2015.05.29 08:37

写了一个存储过程,是一系列查询、处理然后入库,第一次执行的数据比第二执行的数据多一半,为什么,第二次执行的速度反而比第一次慢2倍多呢?(同一台服务器,历史数据同样多)

建议在存储过程里加个日志,把执行的时间记录到数据库的某个日志表中,分析一下速度慢在哪里,然后进行针对性的优化,第二次比较第一次慢,有可能资源占用较多形成的

hexianglian_229
hexianglian_229 回复PB人生: 恩恩
2 年多之前 回复
lzp_lrp
lzp_lrp 回复Bug妹: 如果对你有帮助,请采纳
2 年多之前 回复
hexianglian_229
hexianglian_229 恩恩,谢谢了哈,,问题已解决,就是资源被占用啦
2 年多之前 回复
Hiwork2015
Hiwork2015   2015.05.29 09:02

执行速度变慢,是否是机器其他大量操作造成的影响,另外查询的效率跟查询语句的针对性有关,也有可能第二次数据查询出的符合条件的数据比较多,然后处理和入库时间就拉长了。

hexianglian_229
hexianglian_229 嗯嗯,谢谢哈
2 年多之前 回复
edouardzyc
edouardzyc   2015.05.29 09:10

会不会是入库的时候因为索引关系导致第二次插入会慢?

u012271952
u012271952   2015.05.29 10:54

速度慢,说明系统资源被另外的不明东西在占用,建议检查下有没有其他的线程在同时运行中。

fx_ss
fx_ss   2015.05.29 11:57

看一下是不是其他的线程占用了,然后再简化一下你的存储过程

qq_28567295
qq_28567295   2015.05.28 23:29

系统中有另外的大量的操作在执行

qq2888804
qq2888804   2015.05.28 23:51

有没有用线程来执行~~~~~~~~~~~

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!