问题描述
嗨,汤姆,
我有一个表有2400选择查询。我有一个过程,它一个接一个地调用和执行每个查询,并更新相同的表但不同的列。这需要1个多小时。我们如何同时执行多个查询以减少运行时间。
我已经在表中每个查询中添加了并行提示。
谢谢,
拉维
我有一个表有2400选择查询。我有一个过程,它一个接一个地调用和执行每个查询,并更新相同的表但不同的列。这需要1个多小时。我们如何同时执行多个查询以减少运行时间。
我已经在表中每个查询中添加了并行提示。
谢谢,
拉维
专家解答
"updating the same table but different column
在我看来,你不想同时运行东西,因为如果它们竞争相同的 * 行 *,那么你将会有各种各样的并发/锁定问题
只要您可以将代码分成块,而不会使您陷入巨大的锁定混乱,就可以使用DBMS_JOB或DBMS_SCHEDULER并行运行它们。
另一件事是,如果可能的话,对现有代码进行一些重构。
例如:
也许可以重铸为
等等。
在我看来,你不想同时运行东西,因为如果它们竞争相同的 * 行 *,那么你将会有各种各样的并发/锁定问题
只要您可以将代码分成块,而不会使您陷入巨大的锁定混乱,就可以使用DBMS_JOB或DBMS_SCHEDULER并行运行它们。
另一件事是,如果可能的话,对现有代码进行一些重构。
例如:
update MY_TABLE t set COL1 = ( select abc from OTHER_TABLE where ... ) update MY_TABLE t set COL2 = ( select def from OTHER_TABLE where ... ) update MY_TABLE t set COL3 = ( select xyz from OTHER_TABLE where ... )复制
也许可以重铸为
update MY_TABLE t set (COL1,COL2,COL3) = ( select abc,def,xyz from OTHER_TABLE where ... )复制
等等。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
972次阅读
2025-03-17 11:33:53
Oracle DataGuard高可用性解决方案详解
孙莹
411次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
355次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
345次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
313次阅读
2025-04-01 11:08:44
Oracle 19c RAC更换IP实战,运维必看!
szrsu
289次阅读
2025-04-08 23:57:08
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
288次阅读
2025-03-24 09:42:53
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
282次阅读
2025-03-19 14:41:51
oracle定时任务常用攻略
virvle
281次阅读
2025-03-25 16:05:19
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
260次阅读
2025-03-19 23:43:22