クエリのパフォーマンスを調整する場合、実行時間を短縮し、論理読み取りの数を増やすことは可能ですか?これは、結合に変更を加えて大きなテーブルにグループ化したクエリの1つで発生したように見えました(主な変更は、最初にGroup BYを実行してから、その派生クエリで結合を実行することでした)。実行しましたが、論理読み取りの数を増やしました。それはなぜであり、どのような種類の変更がそれにつながる可能性がありますか?
SQLサーバー
クエリのパフォーマンスを調整する場合、実行時間を短縮し、論理読み取りの数を増やすことは可能ですか?これは、結合に変更を加えて大きなテーブルにグループ化したクエリの1つで発生したように見えました(主な変更は、最初にGroup BYを実行してから、その派生クエリで結合を実行することでした)。実行しましたが、論理読み取りの数を増やしました。それはなぜであり、どのような種類の変更がそれにつながる可能性がありますか?
SQLサーバー
論理読み取りメジャーは、バッファープール(キャッシュ)からの読み取りを考慮していないため、適切ではありません。このメトリックは、いくつかの例外を除いてほとんど役に立たないと思います。
どのような場合、論理読み取りは増加しますが、実行時間は減少しますか?
インデックスシークを使用したネストされたループ結合は、少なくとも1つの論理読み取りを生成します。この操作の実際のコストは非常に低くなりますが、読み取られたすべてのページがキャッシュされる場合。
したがって、論理読み取りは非常に誤解を招くカウンターであることがわかります。実際の物理IO、CPU使用率、および遅延を最適化してください。