我想删除一个空的分区,但是我知道oracle在执行像DROP这样的分区DDL语句时将所有索引设置为不可用,因此,我应该在语句中添加UPDATE GLOBAL INDEXES
,尽管它看起来不必要
然后我提出this post,它说它不会标记为无法使用,所以我决定测试它。问题是我在两个oracle版本中进行了测试,它的工作方式不同了!
有两个实例:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
)Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
)在DBa中,它将它们标记为无效,并且在DBb中包含与其他数据库相同的数据(使用exp / imp克隆),它成功删除而不将其标记为无法使用。
是否可以明确告诉Oracle您希望保持索引可用,因为分区中没有数据(没有重建索引)?
答案 0 :(得分:1)
到目前为止,我无法找出为什么它在放置中被标记为无效而在另一个放置中无效,但是如果有人遇到同样的问题,还有什么可说的。
始终使用UPDATE GLOBAL INDEXES
运行它,因为如果分区为空,则会花费时间执行删除,并确保索引不会被标记为无效。因此,没有理由希望oracle不会标记它们
答案 1 :(得分:0)
可以在下面尝试,这可以保持下降期间的索引有效性。 ALTER TABLE t1 DROP PARTITION p5更新全球指数;
答案 2 :(得分:0)
是..在分区表上创建索引时使用LOCAL索引