私は SQL クエリのパフォーマンス強化に不慣れで、ビューのパフォーマンスを強化するタスクを与えられました。
このビュー定義には約 20 個の左結合が適用されており、これがパフォーマンスを妨げていると思われます。ローカル サーバーで 35K の奇数行を取得するのに約 9 秒かかります。
そのパフォーマンスを向上させる最良の方法は何ですか?
私は SQL クエリのパフォーマンス強化に不慣れで、ビューのパフォーマンスを強化するタスクを与えられました。
このビュー定義には約 20 個の左結合が適用されており、これがパフォーマンスを妨げていると思われます。ローカル サーバーで 35K の奇数行を取得するのに約 9 秒かかります。
そのパフォーマンスを向上させる最良の方法は何ですか?
クエリを見ずに言うのは難しいです。パフォーマンスを向上させる1つの可能な方法は、結合に関係する列のインデックスを作成することです。
クエリ実行プランを表示すると、クエリのどの部分が処理速度を低下させているかを確認できるはずです。また、データベースエンジンチューニングアドバイザを介してクエリを実行し、アドバイザがどの列のインデックスが最も大きな違いを生むかを提案できるようにすることもできます。
このビューをどこで使用していますか?これをprocなどで使用している場合は、すべてのビューの列からいくつかの列を使用することをお勧めします。これらの結合のいくつかは最終結果にさえ影響を与えず、不要なテーブルを結合する必要がないため、これらの結合のいくつかは冗長になる可能性があります。したがって、最良の方法は、このビューが使用される場所、ビューが呼び出されるたびに使用される列、および必要な列を持つテーブルをプロファイルすることです。
ビューを参照する代わりに、他のprocなどからこのビューを使用している場合は、各テーブルを参照し、必要なテーブルのみを使用することをお勧めします。