删除空分区。索引是否标记为无效?

时间:2013-10-08 14:30:29

标签: oracle oracle11g database-partitioning drop-table

我想删除一个空的分区,但是我知道oracle在执行像DROP这样的分区DDL语句时将所有索引设置为不可用,因此,我应该在语句中添加UPDATE GLOBAL INDEXES,尽管它看起来不必要

然后我提出this post,它说它不会标记为无法使用,所以我决定测试它。问题是我在两个oracle版本中进行了测试,它的工作方式不同了!

有两个实例:

  • DBa(Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
  • DBB(Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

在DBa中,它将它们标记为无效,并且在DBb中包含与其他数据库相同的数据(使用exp / imp克隆),它成功删除而不将其标记为无法使用。

是否可以明确告诉Oracle您希望保持索引可用,因为分区中没有数据(没有重建索引)?

3 个答案:

答案 0 :(得分:1)

到目前为止,我无法找出为什么它在放置中被标记为无效而在另一个放置中无效,但是如果有人遇到同样的问题,还有什么可说的。

始终使用UPDATE GLOBAL INDEXES运行它,因为如果分区为空,则会花费时间执行删除,并确保索引不会被标记为无效。因此,没有理由希望oracle不会标记它们

答案 1 :(得分:0)

可以在下面尝试,这可以保持下降期间的索引有效性。     ALTER TABLE t1 DROP PARTITION p5更新全球指数;

答案 2 :(得分:0)

是..在分区表上创建索引时使用LOCAL索引