在AnySQL.net中搜索标签(Tags) 'Enqueue' 的结果:

在Oracle中如何跳过被别人锁住的记录?

    Oracle的AQ可用于消息处理, 可有一个或几个消息产生者将不同的消息插入到AQ表中, 然后由多个进程来获取并处理这些消息, 虽然这儿的解释很简单, 但要实现一个可靠具有事务功能的消息处理系统还是件不容易的事情. 在这儿我要讲的是当有多个消息处理进程时, Oracle是如何让他们能最快地并行地处理的?     这个问题可以简化为, 在一个表中有很多的记录(消息), 然后有很多进程来将这个表中的记录取出来, 进行处理后, 并在这个表中删除已经处理过的记录, 如果只有一两个这样的进程时, 可能什么事情也看不出来, 但是当有很多同样的进程来并行地处理这些记录时, 就会遇到数据库中常会遇到的Enqueue等待.     按照一般的处理方法可能会使用如下的代码: declare    cursor msg is select ... from message_table        where rownum begin    open msg;   ...

根据标记(Tags)来查找:

分类 | Categories

本站基于MT-3.36免费版, 和Fenng设计的模板.
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql