プロファイラートレースを実行するとき、クエリ期間は正確に何を測定しますか?
データアクセス(SELECT)を実行するストアドプロシージャがあり、アプリケーションに結果を返すまでに平均で約30秒かかります。しかし、トレースを実行すると、平均所要時間は約8秒、最大所要時間は12秒、平均CPUは5.5秒です。
結果セットを返すのに、これほど長い時間がかかる原因は何ですか?大量のNETWORKIO待機を蓄積していません。結果セットは単純なテキストデータの約270行、合計約50列です。
4
これには、クライアントでの結果の配信とレンダリングにかかる時間は含まれません。
—
アーロンバートランド
それは理にかなっていますが、大きな遅延(結果をレンダリングするための実行時間の3倍)があった場合、大きなNETWORKIO待機が発生するとは思わないでしょうか?私の最後の再起動はちょうど昨日で、NETWORKIO待機は合計で230秒待機しました(私にとっては、1日はそれほど長くないようです)。
—
sqlbattsman '20 / 07/20
SET STATISTICS TIMEなどでコマンドを実行してみましたか?また、レンダリングに時間が費やされている場合、ネットワークではそれがわかりません。結果内のすべてのデータをテキスト対グリッドにレンダリングした場合、何か違いはありますか?
—
アーロンバートランド
テキストへの結果には大きな違いはありません。これで、SET STATISTICS TIMEを指定して実行すると、取得される合計期間がはるかに正確になります
—
sqlbattsman