Oracle中的子分区是否会阻碍分区性能

时间:2016-11-30 10:29:06

标签: sql oracle plsql

我正在对分区进行研究,并在子分区主题上有点死路一条。

以下是我在oracle手册(https://docs.oracle.com/cd/B19306_01/server.102/b14231/partiti.htm)中发现的内容:

“范围列表分区表的分区只是逻辑结构,因为它们的数据存储在子分区的段中。列表子分区与列表分区具有相同的特征。您可以指定默认子分区,就像为列表分区指定默认分区一样。“

因此,首先,我得出结论,由于子分区有自己的“段”,因此它们有自己的文件。我是对的吗?

其次,我想知道这是否会妨碍分区效果。这就是我的意思:

如果我们有一个分区,通常它只在一个表空间和一个表空间上。文件(如果我错了,请纠正我,我甚至不知道是否可以将它传播到几个表空间/文件中)。这意味着当我们专门搜索分区时,它只会查看一个文件。

然后,如果通过几个段(文件)实现子分区,甚至在几个表空间中实现子分区,这是不是意味着当我们查询分区(而不是子分区)时,它需要更多时间(相对)?

最后,我没有时间,也没有可能测试这个理论,这就是我要问的原因。我的项目结束了(完全是我的错),我无法在我公司的服务器上测试分区。

提前致谢!

2 个答案:

答案 0 :(得分:3)

细分和文件之间没有直接关系。段从表空间分配空间,表空间由一个或多个文件组成。访问的文件数量不是性能的重要因素。

答案 1 :(得分:1)

实际上,术语SUBPARTITION有点误导,因为它预计你在PARTITION中有一个“PARTITION”。对于某些操作(例如DROP PARTITION),这是正确的,但对于其他操作,情况并非如此,例如,如果表具有SUBPARTITIONS,则无法运行ALTER INDEX ... REBUILD PARTITION

考虑PARTITION一个属性确定,RANGELISTINTERVALHASH

SUBPARTITION基本相同,但由RANGELISTINTERVALHASH两个属性决定。

在性能或物理存储方面,分区和子分区之间没有区别。