sp_reset_connection
SQL Server Profilerで表示すると、システムストアドプロシージャの実行に数ミリ秒以上かかるのはなぜですか?
SQL Serverプロファイラーを使用して運用システムから簡単なトレースを取得し、SqlNexusを使用してそれを分析しました。SqlNexusは、sp_reset_connectionの累積期間が最も長く、トレース全体の33%であることを示しています。観測された期間は0〜7秒(12〜6,833,270マイクロ秒)の範囲ですが、平均は0.956秒です。
プールされた接続が再利用されるときにsp_reset_connectionが呼び出されていることを理解しています。これは無関係なトレースが原因で発生する可能性があるという提案を見ましたが、そうではないようです。
私はsprocが呼び出されたときにサーバーが何をしているかを読みましたが、この場合問題があるとは思いません-コードは、開いたトランザクションやクリーンアップする必要がある巨大な一時テーブルを残していません。
また、https://serverfault.com/questions/199974/sp-reset-connection-taking-a-long-time-to-runも確認しましたが、役に立ちませんでした。
編集(2013-12-23): すべてのケースで、読み取りと書き込みは0で、CPUはほぼ常に0です(ゼロ以外のCPUのインスタンスは2つだけで、どちらも16msです)。
RPC:Starting
、RPC:Completed
その後、種類がのspidがその時間の間に発生している待つかを確認するために、データに目を通す短期間の種類を待ちます。