多线程oracle调用存储过程排队吗
1、在p1内应该是按你调用的顺序执行的,如果要p1和p2的执行放在一个事物中,子过程中不写commit。
2、对于多线程调用存储过程是没有问题的,但可能存在存储过程所处理的表产生并发冲突,CPU资源占用多通常是磁盘读写多,建议在DB负担重时查一下哪些表被锁,然后对存储过程进行优化。
3、可以想象如个2个人同时对一个对象的同一个内容进行处理那 是不可能的。锁只能被一个用户保持,这是规矩 当然这都是oracle 内部机制,如果多线程调用并非完全相同的内容,锁的竞争不是那么明显当然能够提升处理速度的。
关于优化Oracle存储过程的问题
为了避免过多地使用虚存,应加大计算机的内存。
很肯定的一点:所有的update可以放在一起,不用开两个cursor。两个loop,效率太差。既然刚接触oracle就从基本开始吧,老老实实的自己学点东西,扎实自己的基本功,拿来的东西不消化有什么用呢?别人的永远是别人的。
首先看看,先分析慢的原因,一部分是因为循环次数多,一部分是因为查询数据量大慢。
你要是数据很多的情况下你往下拉,你会发信很慢,其实查询过程根本就还没有结束。 总之写存储过程第一步是会写,第二步是要做好优化,否则当你的数据量很大的时候你的过程写的不好的话问题会马上暴露出来。
一般来说 对程序效率造成最大的问题的就是cursor, 当然也包括了对INDEX列的DML。 那我们先一步步来。 您先查一下, 给个截图。 或者简单描述下您查到的执行计划的结果。
oracle数据库存储过程执行慢时如何优化
1、调整内存分配Oracle数据库服务器保留3个基本的内存高速缓存,分别对应3种不同类型的数据:库高速缓存,字典高速缓存和缓冲区高速缓存。
2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
3、ORACLE公司推荐使用ORACLE语句优化器(OracleOptimizer)和行锁管理器(row-levelmanager)来调整优化SQL语句。
4、首先看看,先分析慢的原因,一部分是因为循环次数多,一部分是因为查询数据量大慢。
oracle优化存储过程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle优化sql步骤、oracle优化存储过程的信息别忘了在本站进行查找喔。