暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 分区和分区

ASKTOM 2021-03-10
339

问题描述

亲爱的先生/女士,

在我们的设置中,我们有多个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虽然挡住了。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论