2012-01-11 1 views
1

2つの表があります。最初のファクトテーブルは約1億行です。もう1つは約100行しかないディメンション表です。私は へのファクトテーブルのビットマップ結合インデックスを作成しました。行をディメンション表に挿入するときにOracleサーバーがハングする

ただし、ディメンション表にいくつかの行を挿入すると、データベースがハングします。

誰かが理由を知っていますか?

+0

どのような手段が掛かっていますか?それはあなたがサーバーを再起動する必要が死んでいる?それとも、2分で非常に遅いですか? –

+0

それは非常に非常に遅いです.2分だけではありませんが、約2時間です。 – sgzhan

答えて

4

ビットマップ索引は、インデックス値付き表の各レコードごとに異なる値と列を持つ行列です。同じ原則がビットマップ・ジョイン・インデックスにも適用されます。DIMENSION表の個別の値ごとに1つの列と、FACT表の1つの列があります。

DIMENSIONテーブルに1行挿入すると、インデックスに1億エントリが生成されることは明らかです。それは長い時間がかかります。

あなたは「数行」を挿入していると言います。だから、正直なところ、これらすべてのエントリを生成するための合理的な時間はどうなると思いますか?

これはビットマップインデックスのトレードオフであり、多くの時間を節約できますが、保守のオーバーヘッドは非常に高いです。そのため、ビットマップ索引を展開する前に慎重に考える必要があります。時々、それらのコストを改善することは可能ですが、それは特定の状況に依存します。

サーバがハングするも原因と思われるかもしれないインデックスを、ビットマップ結合と心に留めする一つの更なる事があります:

「一つだけテーブルが異なるトランザクション 使用することにより、同時に更新することができ ビットマップ結合インデックス。

マニュアルを読む必要があります。 Find out more.

0

ビットマップ索引は、多数の行をロードするときにパフォーマンスに悪影響を及ぼします。探している効率を得るには、インデックスを使用不可能とマークし、レコードをロードしてから、インデックスを再構築します。あなたは、あなたが話しているデータの量によって負荷時間が改善するのを見なければなりません。

関連する問題