SQL Serverの継続時間測定は実際に何を測定しますか?


8

プロファイラートレースを実行するとき、クエリ期間は正確に何を測定しますか?

データアクセス(SELECT)を実行するストアドプロシージャがあり、アプリケーションに結果を返すまでに平均で約30秒かかります。しかし、トレースを実行すると、平均所要時間は約8秒、最大所要時間は12秒、平均CPUは5.5秒です。

結果セットを返すのに、これほど長い時間がかかる原因は何ですか?大量のNETWORKIO待機を蓄積していません。結果セットは単純なテキストデータの約270行、合計約50列です。


4
これには、クライアントでの結果の配信とレンダリングにかかる​​時間は含まれません。
アーロンバートランド

それは理にかなっていますが、大きな遅延(結果をレンダリングするための実行時間の3倍)があった場合、大きなNETWORKIO待機が発生するとは思わないでしょうか?私の最後の再起動はちょうど昨日で、NETWORKIO待機は合計で230秒待機しました(私にとっては、1日はそれほど長くないようです)。
sqlbattsman '20 / 07/20

3
SET STATISTICS TIMEなどでコマンドを実行してみましたか?また、レンダリングに時間が費やされている場合、ネットワークではそれがわかりません。結果内のすべてのデータをテキスト対グリッドにレンダリングした場合、何か違いはありますか?
アーロンバートランド

テキストへの結果には大きな違いはありません。これで、SET STATISTICS TIMEを指定して実行すると、取得される合計期間がはるかに正確になります
sqlbattsman

回答:


1

期間は、SQL Serverによる要求の開始から終了までの合計時間を表します。これは、ネットワーク経由で送信する時間、CPU時間、待機、および実行を表します。Aaronが述べたように、クライアントがデータを受信すると、SQL Serverはそのタイミングを終了し、クライアントは処理を開始します。これは期間の一部であってはなりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.