Oracle数据库中表的高水位标记(HWM)是已使用的块与从未使用过的块之间的界限。截断表会将HWM重置为零。
现在,如果我有一个分区表,我想知道以下是否属实:
alter table ... drop partition ...
会影响表格的HWM吗?我的想法是我想用insert /*+ append */
(直接路径插入)填充分区表,但它只将数据写入HWM之外,如果重新创建分区,空间是否会被重用?我没有找到有关这个具体方面的信息。
答案 0 :(得分:4)
每个分区都是一个单独的分段,因此每个分区都有自己的HWM。我假设截断整个表会重置所有分区的HWM。您也可以截断单个分区,这肯定会重置分区的HWM。
答案 1 :(得分:1)
除了Dave Costa的回答,回答第二个问题:如果截断分区,HWM将为零,因此将重新获得空间以进行直接路径插入(将使用空格)。如果删除分区,则可以使用任何其他段的空间。特别是,为您的新分区。
所以,用更少的话说:
另外,如果你想重用空间,另一个使用的技巧是做一个
alter table move partition
。这将“重新创建”分区,而不会丢失数据。
有更多细节,但这是你的问题。