大きな行セットに対して呼び出される関数内にあるため、多くのクエリが実行されます。
クエリはSELECT @sql = NULL WHERE @sql = ''
これは私に0の物理的な読み取りを示していますが。
約17000の論理読み取りが表示されます。
説明はありますか?
大きな行セットに対して呼び出される関数内にあるため、多くのクエリが実行されます。
クエリはSELECT @sql = NULL WHERE @sql = ''
これは私に0の物理的な読み取りを示していますが。
約17000の論理読み取りが表示されます。
説明はありますか?
次の質問と回答を見てください。
https://dba.stackexchange.com/questions/9302/why-so-many-logical-reads
それらはページの読み取りです。それは関連しています。
可能性:
- 不適切または不十分な索引付け。フィルター処理されたフィールドのいずれかがインデックス化されていますか? インデックスの幅はどのくらいですか (以下を参照)。
- ページ密度が低い。持っている可能性のあるインデックスのフィルファクターは何ですか? 値が低すぎる場合は、このために多くのページを引っ張っていることになります。
- 非常に幅広いインデックス。インデックスはあるが、フィールドが多数ある場合、またはフィールドが非常に広い場合は、ページあたりの行数が少なくなります。
これらの条件の少なくとも 1 つに対してテーブルまたはクラスター化インデックスのスキャンが行われていると思いますが、実際に必要なデータの量に関係なく、テーブルが広いため、大量のデータが読み取られます。