現在、ASP.net 2.0 アプリケーションでいくつかの GUI テストを行っています。RDBMS は SQL Server 2005 です。ホストは Win Server 2003 / IIS 6.0 です。
コードを公開していない外部企業によってプログラムされたため、アプリケーションのソース コードはありません。
IIS を再起動するとアプリケーションが正常に動作することに気付きましたが、いくつかのテストの後、ブラウザを数時間開いて閉じた後、アプリケーションがどんどん遅くなり始めました。この動作は、プログラマーの不適切なクローズ接続の慣行によるものかどうか疑問に思っていました: ここのデータベースでオープン接続リークが発生していると思われます。
最終的には .Net ガベージ コレクターによって閉じられると思いますが、それにはしばらく時間がかかります。
SQL Server Management Studio を持っていますが、アクティビティ モニターから、データベースでかなりの数の接続が開かれていることがわかります。
上記のすべてから、主な質問に関連するいくつかの質問があります。
SQL Server 2005 で、接続が接続プールで使用されるのを待っているために開いているのか、それともアプリケーションによって使用されているために開いているのかを知る方法はありますか?
この種の問題を追跡するのに役立つパフォーマンス カウンターまたはその他の種類のツールの使用方法を学べる優れたオンライン/紙のリソースを知っている人はいますか?
パフォーマンス カウンターが最適なソリューションである場合、監視すべき変数は何ですか?