web-dev-qa-db-ja.com

Oracleで関数ベースのインデックスを削除するのに長い時間がかかるのはなぜですか?

9400万行のテーブルで作成するのに25分かかる関数ベースのインデックスがあります。

インデックスを削除すると、18分かかります。

なぜそんなに時間がかかるのですか?ドロップはほぼ即時だったと思いますか?約10分後にインデックスがuser_indexesから削除されますが、スクリプトはさらに約8分間実行されます。

テーブルはパーティション化されており、これはOracle 10g RACインストールです。さらに情報が役立つ場合は、必要に応じて追加できます。

これに当てはまるどんな光でも大歓迎です。

5
Clarkey

関数ベースのインデックスは仮想列を追加します をテーブルに追加します(この列にはインデックスが付けられます)。インデックスを削除すると、仮想列が削除され、クリーンアップに時間がかかります(非仮想列の削除と同じ量の作業)。

8
Vincent Malgrat