问题描述
亲爱的先生/女士,
在我们的设置中,我们有多个java作业获取和写入几个表 (一些作业同时击中相同的表)。
这些表在业务日期进行分区。
我的第一个问题是,如果2个或更多作业开始击中同一张表 (一个需要读取,另一个需要写入),该表会被锁定吗?
这些表也可以以对称的方式被细分到多个位置。
我的第二个问题是,每个分区是否会像一个单独的表?subpartition会提高查询的性能吗?如果两个或多个作业击中同一个表,则相同的业务日期但不同的子分区将oracle并行执行2个查询 (就像它们是两个不同的分区一样)?
谢谢你的时间。
最好的,
尼古拉斯
在我们的设置中,我们有多个java作业获取和写入几个表 (一些作业同时击中相同的表)。
这些表在业务日期进行分区。
我的第一个问题是,如果2个或更多作业开始击中同一张表 (一个需要读取,另一个需要写入),该表会被锁定吗?
这些表也可以以对称的方式被细分到多个位置。
我的第二个问题是,每个分区是否会像一个单独的表?subpartition会提高查询的性能吗?如果两个或多个作业击中同一个表,则相同的业务日期但不同的子分区将oracle并行执行2个查询 (就像它们是两个不同的分区一样)?
谢谢你的时间。
最好的,
尼古拉斯
专家解答
will the table be locked if 2 or more jobs start hitting the same table (the one needs to read and the other to write)?
不要。
Oracle数据库的一大优势是:
Readers NEVER block writers
正如医生所说:
Nonblocking queries
Readers and writers of data do not block one another.
https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/data-concurrency-and-consistency.html#GUID-4BD4DFD6-DAEA-41B2-BB56-7135568F0548
will each subpartition act like a separate table?
是和否。您可以在 (子) 分区级别执行许多操作。并且您可以将DML操作限制为单个分区-前提是您在其where子句中包含所有分区列。
Will subpartition increase performance of the the query?
也许
分区是一个很大的话题 -- 我建议复习一下康纳的入门书,以帮助你更好地理解它
https://asktom.oracle.com/partitioning-for-developers.htm
If two or more jobs hit the same table, same business date but different subpartition will oracle execute the 2 queries in parallel (like they are two different partitions)?
任何两个会话都可以同时查询该表。不管他们是在读取不同的分区还是完全相同的行。两者都可以并行运行。
您也可以让两个或多个会话同时写入表。在某些情况下,编写者可以互相阻止-经典的例子是两个会话更新/删除相同的行。通常有许多进程用no虽然挡住了。
不要。
Oracle数据库的一大优势是:
Readers NEVER block writers
正如医生所说:
Nonblocking queries
Readers and writers of data do not block one another.
https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/data-concurrency-and-consistency.html#GUID-4BD4DFD6-DAEA-41B2-BB56-7135568F0548
will each subpartition act like a separate table?
是和否。您可以在 (子) 分区级别执行许多操作。并且您可以将DML操作限制为单个分区-前提是您在其where子句中包含所有分区列。
Will subpartition increase performance of the the query?
也许
分区是一个很大的话题 -- 我建议复习一下康纳的入门书,以帮助你更好地理解它
https://asktom.oracle.com/partitioning-for-developers.htm
If two or more jobs hit the same table, same business date but different subpartition will oracle execute the 2 queries in parallel (like they are two different partitions)?
任何两个会话都可以同时查询该表。不管他们是在读取不同的分区还是完全相同的行。两者都可以并行运行。
您也可以让两个或多个会话同时写入表。在某些情况下,编写者可以互相阻止-经典的例子是两个会话更新/删除相同的行。通常有许多进程用no虽然挡住了。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1327次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
803次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
729次阅读
2025-03-06 09:41:49
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
469次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
366次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
318次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
311次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
254次阅读
2025-03-06 09:09:35
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
252次阅读
2025-03-19 14:41:51
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
247次阅读
2025-03-24 09:42:53