oracle 的多线程问题

vber1010 2010-06-12 10:23:23
假设过程A 里面中有个dml的操作会触发一个触发器,这个触发器里面的过程B和过程A中剩下的工作是并行的还是串行执行的? 我做了个简单的实验发现Oracle并没有新开线程来执行触发器里的过程。 而且当我将触发器用“独立事务”的方式替代后从得到的结果来看也并没开新线程,也就是说独立事务和调用独立事务的事务也不是并行的。

实验很简单,不知道得到的结论对不对,请高手指点一下。
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero_ 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vber1010 的回复:]

谢谢楼上的回答 有没有开新线程的执行的例子? 我的那个触发器里要执行的过程很费时,不想等待这个过程执行完了再执行父过程剩余的东西,怎么好?
[/Quote]
也许可以通过实现一个外部存储过程(java或c实现),在实现部分创建一个新的线程并执行,结束以后通过pipe message发送一个通知给管道。你在后来的调用里头通过询问管道,可以得到完成的通知。

过程是有点别扭,但估计可行。
vber1010 2010-06-12
  • 打赏
  • 举报
回复
谢谢楼上的回答 有没有开新线程的执行的例子? 我的那个触发器里要执行的过程很费时,不想等待这个过程执行完了再执行父过程剩余的东西,怎么好?
iihero_ 2010-06-12
  • 打赏
  • 举报
回复
都是blocking方式执行的,也就是说都是串行同步执行的。不会创建新线程。

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧