Oracle数据库中表的高水标记(HWM)是已使用的块和从未使用过的块之间的线。截断表将HWM重置为零。
现在,如果我有一个分区表,我想知道以下内容是否属实:
alter table ... drop partition ...是否影响表的HWM??
我的想法是用insert /*+ append */ (直接路径插入)填充分区的表,但是它只写入HWM之外的数据,所以如果我重新创建分区,空间会被重用吗?我找不到这方面的信息。
发布于 2012-03-29 12:06:37
每个分区是一个单独的段,因此每个分区都有自己的HWM。我认为截断整个表将重置所有分区的HWM。您也可以截断各个分区,这肯定会重置分区的HWM。
发布于 2012-03-29 12:33:01
除了direct的回答外,还回答了第二个问题:如果您截断分区,HWM将为零,因此将重新获得空间用于直接路径插入(空间将被使用)。如果您删除分区,空间将为任何其他段使用。特别是你的新分区。
所以,用更少的话说:
如果截断分区,
另外,如果您想要重用空间,另一个方法是执行一个alter table move partition。这将“重新创建”分区,而不会丢失数据。还有更多的细节,但这是你的问题。
https://stackoverflow.com/questions/9924838
复制相似问题