问题描述
我是开发人员,而不是DBA,所以对此有足够的了解是危险的。
我有一个使用多个站点上相当标准的脚本设置队列。我用过这个:http://www.oracle-developer.net/display.php?id=411
当它被加载时,故障就开始了。我有大约270个请求在10秒内被排队。前10个非常迅速地出队并进行处理。出队过程执行的任务可以持续15秒到一个小时。所有DML都将立即提交,因此不应存在不断增长的事务。我已经阅读了我能找到的每个文档,但无法确定如何控制队列将同时运行的异步任务的数量。
理想情况下,我想启动200并发进程,因此队列中的所有项目都同时出队和处理。实际上,所有200工作都需要大约8个小时才能最终清除,因为出队所需的时间越来越长。
我已经查看了多个订户,但是我的理解是,这将针对不同的任务多次在队列中运行行。我在创建表时使用了param multiple_consumers => TRUE,但是我再次认为这是用于同一行的多个处理,而不是单个任务的并行处理。我只有一个任务,我需要为队列中的每一行处理。我只需要更多的并发进程同时运行。我以为这将是一个简单的参数,但找不到它。当我查看日志记录时,一旦资源可用,排队的任务似乎正在等待出队。
所以总结一下,我需要提高队列的吞吐量。对此的任何帮助将不胜感激。
非常感谢
我有一个使用多个站点上相当标准的脚本设置队列。我用过这个:http://www.oracle-developer.net/display.php?id=411
当它被加载时,故障就开始了。我有大约270个请求在10秒内被排队。前10个非常迅速地出队并进行处理。出队过程执行的任务可以持续15秒到一个小时。所有DML都将立即提交,因此不应存在不断增长的事务。我已经阅读了我能找到的每个文档,但无法确定如何控制队列将同时运行的异步任务的数量。
理想情况下,我想启动200并发进程,因此队列中的所有项目都同时出队和处理。实际上,所有200工作都需要大约8个小时才能最终清除,因为出队所需的时间越来越长。
我已经查看了多个订户,但是我的理解是,这将针对不同的任务多次在队列中运行行。我在创建表时使用了param multiple_consumers => TRUE,但是我再次认为这是用于同一行的多个处理,而不是单个任务的并行处理。我只有一个任务,我需要为队列中的每一行处理。我只需要更多的并发进程同时运行。我以为这将是一个简单的参数,但找不到它。当我查看日志记录时,一旦资源可用,排队的任务似乎正在等待出队。
所以总结一下,我需要提高队列的吞吐量。对此的任何帮助将不胜感激。
非常感谢
专家解答
您是否使用PL/SQL通知出队?如果是这样,您无法控制有多少出队进程:
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:8178644100346656339
但是,如果你想同时运行270进程,有一个更基本的问题:
您的系统是否有能力处理270并发请求?
简而言之,如果每个进程消耗1个CPU线程,而您只有8个可用,则一次只能处理8个作业。所以其他262将不得不等待。现实世界将比这更复杂,进程做IO等。但是很可能会争夺硬件资源。
因此,除非您的数据库上有大量的备用容量,否则您的数据库很可能无法应付所有一起开始的队列。
这带来了另一个问题:
为什么这些是单独的过程?你能把它们合二为一吗?
例如,不是开始200单行更新,你可以运行一个更新,改变200行?
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:8178644100346656339
但是,如果你想同时运行270进程,有一个更基本的问题:
您的系统是否有能力处理270并发请求?
简而言之,如果每个进程消耗1个CPU线程,而您只有8个可用,则一次只能处理8个作业。所以其他262将不得不等待。现实世界将比这更复杂,进程做IO等。但是很可能会争夺硬件资源。
因此,除非您的数据库上有大量的备用容量,否则您的数据库很可能无法应付所有一起开始的队列。
这带来了另一个问题:
为什么这些是单独的过程?你能把它们合二为一吗?
例如,不是开始200单行更新,你可以运行一个更新,改变200行?
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle DataGuard高可用性解决方案详解
孙莹
505次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
485次阅读
2025-04-15 17:24:06
墨天轮个人数说知识点合集
JiekeXu
406次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
399次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
376次阅读
2025-04-01 11:08:44
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
366次阅读
2025-04-18 14:18:38
Oracle 19c RAC更换IP实战,运维必看!
szrsu
345次阅读
2025-04-08 23:57:08
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
316次阅读
2025-04-15 14:48:05
oracle定时任务常用攻略
virvle
316次阅读
2025-03-25 16:05:19
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
312次阅读
2025-03-24 09:42:53