Oracle10g Oracle sql中多个读卡器的等待/通知机制?
我们有多个进程,它们读取一个数据库表,获取可用记录并使用它。它很好用 当此表中没有记录时,每个进程将等待5秒并再次读取。 因此,记录可能会在表中闲置5秒钟,这是不好的 建议采用什么解决方案来消除此类等待,并在创建记录时立即进行?一种解决方案是触发器,它在创建记录时执行某些操作。但此解决方案需要了解工作流程,才能将记录传递给空闲流程之一 看起来,理想的解决方案是,当每个进程开始通过SQL从某个对象读取数据时,当创建记录时,其中一个等待的进程将有它的记录,而另一个进程将继续等待 Oracle 10是否提供了这样或类似的机制?看看10g,它后来被重命名为连续查询通知Oracle10g Oracle sql中多个读卡器的等待/通知机制?,oracle10g,Oracle10g,我们有多个进程,它们读取一个数据库表,获取可用记录并使用它。它很好用 当此表中没有记录时,每个进程将等待5秒并再次读取。 因此,记录可能会在表中闲置5秒钟,这是不好的 建议采用什么解决方案来消除此类等待,并在创建记录时立即进行?一种解决方案是触发器,它在创建记录时执行某些操作。但此解决方案需要了解工作流程,才能将记录传递给空闲流程之一 看起来,理想的解决方案是,当每个进程开始通过SQL从某个对象读取数据时,当创建记录时,其中一个等待的进程将有它的记录,而另一个进程将继续等待 Oracle 10是
我通常喜欢包含一个示例,但现在很难找到10g实例,即使是一个简短的示例也需要大量代码。这个过程看起来很复杂,最好按照您的建议使用触发器,并处理紧耦合。谢谢您的回答,但我不确定它是否对我有帮助。对我来说,它看起来像是更新通知的附加机制。常规触发器可以做到这一点。我对更新计数不感兴趣。我的兴趣是等待更新,然后通知一个(最坏情况-所有)等待查询。如此多的进程启动查询并等待,当有问题需要回答时,等待就结束了,然后可以继续(在最坏的情况下——竞争这个结果,但这是另一个众所周知的情况)。不可能让一个查询等待事情的改变;Oracle查询始终是时间点,只返回查询开始时的结果。然而,DCN或CQN可以启动PL/SQL或JDBC进程,然后运行查询。