0

私は SQL クエリのパフォーマンス強化に不慣れで、ビューのパフォーマンスを強化するタスクを与えられました。

このビュー定義には約 20 個の左結合が適用されており、これがパフォーマンスを妨げていると思われます。ローカル サーバーで 35K の奇数行を取得するのに約 9 秒かかります。

そのパフォーマンスを向上させる最良の方法は何ですか?

4

3 に答える 3

1
  1. INNER結合ではなく、LEFT結合が必要かどうかを検討してください。関連するデータの知識がなければ、それを提供することはできません。
  2. クエリで実行プランを実行します。
  3. インデックスがパフォーマンスを向上させる可能性のある結合を特定します。
  4. データベース設計の非正規化を検討してください。
于 2012-07-18T12:29:18.990 に答える
0

クエリを見ずに言うのは難しいです。パフォーマンスを向上させる1つの可能な方法は、結合に関係する列のインデックスを作成することです。

クエリ実行プランを表示すると、クエリのどの部分が処理速度を低下させているかを確認できるはずです。また、データベースエンジンチューニングアドバイザを介してクエリを実行し、アドバイザがどの列のインデックスが最も大きな違いを生むかを提案できるようにすることもできます。

于 2012-07-18T12:28:06.513 に答える
0

このビューをどこで使用していますか?これをprocなどで使用している場合は、すべてのビューの列からいくつかの列を使用することをお勧めします。これらの結合のいくつかは最終結果にさえ影響を与えず、不要なテーブルを結合する必要がないため、これらの結合のいくつかは冗長になる可能性があります。したがって、最良の方法は、このビューが使用される場所、ビューが呼び出されるたびに使用される列、および必要な列を持つテーブルをプロファイルすることです。

ビューを参照する代わりに、他のprocなどからこのビューを使用している場合は、各テーブルを参照し、必要なテーブルのみを使用することをお勧めします。

于 2012-07-18T12:34:07.317 に答える