-
ANALYZE TABLEはインデックスを再構築しませんよね?
わかりませんが、最近は
DBMS_STATS.GATHER_TABLE_STATS
を使用する必要がありますANALYZE TABLE
ではなく -
直接ロードとは、データが行ごとに挿入されるのではなく、一括で挿入されることを意味します。ダイレクトパスロード
-
インデックスが
UNUSABLE
になった場合 その場合、それはグローバルインデックスでなければなりません。 -
UPDATE GLOBAL INDEXES
を使用します 句、つまりalter table target_table drop partition target_eldest_partition UPDATE GLOBAL INDEXES;
またはローカルインデックスを作成します。 -
インデックスを作成した列によって異なります。テーブル全体の代わりに、
DBMS_STATS.GATHER_INDEX_STATS
を実行することもできます。 。DBMS_STATS.GATHER_TABLE_STATS
を使用 単一のパーティションだけ、さらには単一の列を指定することもできます。
ところで、多くの質問に対して、私の答えは実際には「Oracleのドキュメントを参照しましたか?」となるはずです。または「あなたはグーグルを知っていますか?」スクリーンショットによると、スキーマSYS
を使用します およびテーブルスペースSYSAUX
ユーザーオブジェクト用。あなたはそれをすべきではありません。独自のユーザーを作成し、このスキーマに任意のオブジェクトを作成します。
一般に、パーティションインデックスには次の3つのタイプがあります。
- グローバルインデックス:テーブル全体にまたがる1つの大きなインデックスがあります。これは、たとえば、インデックス付きの列がパーティションキーの一部でない場合、UNIQUEINDEXESでは必須です。実際、そのようなインデックスは分割されていません。 (
ALL_INDEXES
に示されているように ) - ローカルインデックス:このインデックスは、基になるテーブルと同じ方法でパーティション化されます。各テーブルパーティションには、それに応じたインデックスパーティションがあります。
- PARTITIONED INDEX:このインデックスはパーティション化されていますが、異なります 基になるテーブルより。パーティション化されていないテーブルにパーティション化されたインデックスを作成することも可能だと思います。パーティションインデックスは、非常に特殊なユースケースのみに制限されています。実際、そのようなインデックスがどこに意味があるのか想像できません。