1

それぞれが同じフィールド(数値ID)で結合された6つのテーブルから構築されたOracleビューに対していくつかのレガシーSQLSPを最適化しようとしています。ビュー内の一部のテーブルには、このIDフィールドのみであるインデックスがあり、他のテーブルにはありません。

このフィールドのみを使用してビュー内の残りのテーブルにインデックスを作成し、このフィールドを唯一のパラメーターとして使用して実際の選択クエリを実行すると、パフォーマンスが大幅に向上しますか?SPには他の欠陥があり、インデックス作成だけでは解決できない可能性があるため、必要に応じてs.procを投稿できます。問題のクエリは1行を返すのに約6秒かかります。どのテーブルにも大量のレコードが含まれておらず、とにかく100,000レコードを超えるものはありません。

前もって感謝します、

スコット

4

2 に答える 2

0

ビュー内のすべてのテーブルに、id フィールドで始まるインデックスがあることを確認してください。id フィールドが最初である限り、インデックスにはさらに多くのフィールドを含めることができます。

それがパフォーマンスに役立たない場合は、選択ステートメントと説明計画を投稿してください。

于 2011-08-26T08:33:45.507 に答える
0

ID フィールドがインデックスの最初の列 (または唯一の列) である場合、インデックスを必要とする残りのテーブルの ID 列にインデックスを追加すると、少数の行を返す場合にクエリが改善されます。

于 2011-08-26T08:35:54.417 に答える