oracle存储过程执行很慢sql很快
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle存储过程执行很慢sql很快相关的知识,希望对你有一定的参考价值。
参考技术A 存储过程放在查询分析器中执行,大概耗时5秒左右即可成功执行,但是在网站中执行却会超时 1. 将该存储过程放到查询分析器中执行,大概耗时5秒左右即可成功执行,但是在网站中执行却会超时; 2. 经查阅资料,这里..oracle存储过程连续执行结果不同
pl/sql里执行存储过程,f8执行后查看结果集,每次都累加.必须把窗口关闭重新测试.
这是pl/sql本来就这样的吗,还是我存储过程写的不对??
存储过程:
http://hi.baidu.com/sordhmbreabivzq/item/a1626cca2873c3ce994aa05b
存储过程是别人写的,我完全不懂,能帮我瞅一眼么??? 是不临时表没清空啥的啊?
麻烦帮忙看下,存储过程完全不懂,上面是连接,谢谢
追答那个存储过程,是有insert这个插入处理的,会导致你数据一直在增加,增加完再查询所以出来的结果就一直增加且重复了。
那个存储过程,是有insert这个插入处理的,会导致你数据一直在增加,增加完再查询所以出来的结果就一直增加且重复了。
追问但是 我该肿么办呢??
追答你为嘛要怎么办呢?如果你只是要查询当前的数据,就去掉那段insert语句,主要是看你自己是什么样的需求,要做什么样的业务,就得按自己的逻辑去做程序。
参考技术A 这肯定不是PL/SQL的原因,具体是什么问题需要分析存储过程本身才知道。追问麻烦帮忙看下,存储过程完全不懂,上面是连接
追答很奇怪,这个存储过程应该是关掉窗口重新测试同样会累加的,除非你在另外执行了什么操作清空了J2131_Z_J213_R_TMP这个表。要做到在J213_R这个表不变的情况下每次执行存储过程的结果一样,需要在存储过程的最前面也就是begin之后,INSERT INTO J2131_Z_J213_R_TMP之前加一行:
truncate table J2131_Z_J213_R_TMP;
是啊,J2131_Z_J213_R_TMP不是一张物理表么,我感觉也很奇怪. 你说的语法好像有点问题:
begin
truncate table J2131_Z_J213_R_TMP
INSERT INTO J2131_Z_J213_R_TMP(
pl/sql提示:

少写了一个分号
本回答被提问者采纳 参考技术B 和plsql没什么关系,和你写的程序以及你要完成的功能有关系。追问麻烦帮忙看下,存储过程完全不懂,上面是连接
以上是关于oracle存储过程执行很慢sql很快的主要内容,如果未能解决你的问题,请参考以下文章
在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题
oracle 在sql>状态下 执行insert into select 正常 将这一段复制到存储过程中 再EXEC 就很慢