单独执行很快,为什么在存储过程里面执行很慢?
这个可能的原因有很多;首先,execute immediate v_sql语句需要硬解析,这是一个较为耗时的过程,而直接拿出来执行的语句,其查询分析树已经存在,所以只需要软解析。
所以,单句执行时就快一些,但在存储过程中,oracle是整个存储过程一起硬解析的,所以,会慢。一般来说,既然写了存储过程就不要用这种简写语句,这种写法通用性低,效率也低。
原因很多,只能具体问题具体分析,一般来说,执行速度慢的原因有:sql语句效率太低 循环次数太多导致慢 数据量过于庞大,导致统计时速度慢等。
for 里的语句条件不对,A、B表都没链接条件 另外你这种loop写法还不如直接写一个update,反正也没有做到分批提交。
可能是存储过程中的语句有问题,可以尝试检查一下存储过程中的语句,看看是否有语法错误或者逻辑错误。另外,也可以尝试把存储过程中的语句一条一条地执行,看看哪一条语句出现了问题。
只能在office环境下运行,受office本身的限制。所用语言只是基于VB语言的辅助性编程的VBA。就其规模来说属于小型的数据库应用软件。早年曾有过ACCESS0(英文版)的可以用于商业用途的数据库开发软件。
存储过程第一次执行耗时30分钟,第二次开始每次耗时不到3分钟,这是什么...
1、如果要插入大的二进制值到Image列,使用存储过程,千万不要用内嵌INsert来插入(不知JAVA是否)。
2、你每connection.close()一次,下次get的时候会重新建立实际物理链接,这样会相当耗时。所以你检查一下是在获取connection时耗的时间多,还是在execute的时间多。
3、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
4、两个办法:一个是做一个数据库复制,可以半天复制一次,也可以一天复制一次(闲时复制),根据用户对数据的敏感度决定,存储过程运行不限时间,运行时访问复制数据库,不影响主数据库。
oracle数据库存储过程执行慢时如何优化
1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2、调整内存分配Oracle数据库服务器保留3个基本的内存高速缓存,分别对应3种不同类型的数据:库高速缓存,字典高速缓存和缓冲区高速缓存。
3、ORACLE公司推荐使用ORACLE语句优化器(OracleOptimizer)和行锁管理器(row-levelmanager)来调整优化SQL语句。
关于oracle存储过程执行慢和oracle 存储过程执行慢的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。