【问题标题】:Oracle drop and create indexOracle 删除和创建索引
【发布时间】:2012-04-12 07:34:00
【问题描述】:

我想知道如果假设这些是在计划的停机时间内完成的,那么删除 Oracle 索引并重新创建它们是否会造成任何数据问题。

最近发现一些索引停在不正确的表空间上,想通过删除索引并在正确的表空间上重新创建来纠正它。

请多多指教。

【问题讨论】:

    标签: oracle indexing


    【解决方案1】:

    我认为这没有问题,但您也可以使用以下语法来代替 drop/create:

    alter index <INDEX_NAME> rebuild tablespace <TABLESPACE_NAME>
    

    为了解决您在下面的评论中提出的问题,alter index rebuild 应该更快。原因是当您删除索引并再次创建它时,索引树将从表本身构建。但是使用alter index rebuild,Oracle 会自己读取索引,从而减少 I/O。

    【讨论】:

    • 谢谢。你会认为alter index 会比drop + create 快得多吗?
    • @ChinBoon,应该是大致相同的时间长度。但是,在重新构建时,您会锁定受影响的表,使其无法更改,或者像 drop / create 一样违反任何完整性约束。
    • 再次感谢。再一次,我怎么知道重建已经完成?是否等待 SQL 语句返回?
    • 是的,你应该等它回来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2020-12-11
    相关资源
    最近更新 更多