Oracle中的分区和高水位标记

时间:2012-03-29 11:56:23

标签: oracle database-partitioning

Oracle数据库中表的高水位标记(HWM)是已使用的块与从未使用过的块之间的界限。截断表会将HWM重置为零。

现在,如果我有一个分区表,我想知道以下是否属实:

  1. 每个分区都维护自己的HWM吗?
  2. 如果没有,alter table ... drop partition ...会影响表格的HWM吗?
  3. 我的想法是我想用insert /*+ append */(直接路径插入)填充分区表,但它只将数据写入HWM之外,如果重新创建分区,空间是否会被重用?我没有找到有关这个具体方面的信息。

2 个答案:

答案 0 :(得分:4)

每个分区都是一个单独的分段,因此每个分区都有自己的HWM。我假设截断整个表会重置所有分区的HWM。您也可以截断单个分区,这肯定会重置分区的HWM。

答案 1 :(得分:1)

除了Dave Costa的回答,回答第二个问题:如果截断分区,HWM将为零,因此将重新获得空间以进行直接路径插入(将使用空格)。如果删除分区,则可以使用任何其他段的空间。特别是,为您的新分区。

所以,用更少的话说:

  • 如果截断分区,则可以使用空间 划分。
  • 如果你放弃分区,空间将是免费的 可用于表空间中的每个段。

另外,如果你想重用空间,另一个使用的技巧是做一个 alter table move partition。这将“重新创建”分区,而不会丢失数据。 有更多细节,但这是你的问题。