2011-12-07 4 views
0

データをテーブルに格納するためのマッピングが終了するまで待つのではなく、パフォーマンスが向上するため、データをOWBマッピングのテーブルにステージングすることがよくあります。 JOINERのWHERE句と一致するように、これらのステージングテーブルにいくつかのインデックスを追加して、さらに処理を高速化しようとしました。しかし、私は自分自身を足で撃っていますか?これらの中間テーブルのインデックスは、ローディングパフォーマンスに悪影響を及ぼしますか?OWBのインデックスの読み込みに負の影響を与える

答えて

0

これについてはルールはありません。テストする必要があります。マッピングでは、作成した索引を使用し、ソース表のマッピングにヒントを定義するようにしてください。そのテーブルのINSERTは確かに遅くなりますが、SELECTはもっと速くなり、良い結果が得られます。また、レコードセットが少ない場合は、インデックスなしでそのまま残して、USE_HASHを使用してください。

ミナ

2

これはまったくシナリオによって異なります。

理論的には、インデックスを持つことはインサートに悪影響を及ぼします。しかし、トレードオフを考慮する必要があります。

たとえば、 ステージング・テーブルがETLサイクル中に1回だけロードされ、複数回読み込まれ、選択/結合を改善する索引を作成した場合は、必ず索引のメリットが得られます。

通常、ステージングテーブルはすべてのETLサイクルでクリアされ、再ロードされます。この場合、索引は頻繁に再構築する必要があります。

また、インデックスの統計情報も検証する必要があります。

関連する問題