Informatica for ETLを使用しており、データベースはOracle 11gです。インデックスの再構築には5〜6時間かかります。それを減らすことはできますか?
毎日ロードされるファクトテーブル(20億レコード)があります。このファクトテーブルには約44のインデックスがあり、ファクトテーブルはパーティション化されています。
インクリメンタルロードの場合は、以下の手順に従います。
- ステージングテーブルからロードするパーティションを特定します。通常、そこの周りの750Kになります -
- は一時テーブルを作成して3〜4パーティションについて900Kレコードとパーティション用のファクトテーブルからパーティション交換を行う
- 一時テーブルにステージング表からの増分データを移入
- は
- 8〜10時間の周りに総ロード時間があるインデックス
を再構築し、一時テーブルからファクトテーブルに再びパーティション交換を行うと再構築インデックスは5-7の周りに(時間の大部分を取っています時間)。インデックスは影響を受けるパーティションに対してのみ再構築され、すべてのインデックスはローカルインデックスです。
誰でもインデックスを再構築するためのより速い方法を提案できますか?
44インデックスはテーブルにありますか?それは私が思うにはあまりにも多くのビットです。 – GurV
大きなテーブルで、各パーティションの範囲とインデックスでうまく区切られています。すべてのカウントは44. – XING
"...と各パーティションのインデックス" - それぞれが同じフィールドを持つ各パーティションに別々のインデックスを作成しているとしますか? –