6

「接続リーク」を示すいくつかのエラーが表示されます。つまり、接続が適切に閉じられておらず、プールが不足しています。では、これをインストルメント化して、特定の時間に開いている正確な数を確認するにはどうすればよいでしょうか?

4

7 に答える 7

6

.netを使用している場合は、PerfMonにSQLサーバー用の.netデータプロバイダーがあります。そこにNumberOfPooledConnectionsを見ることができます

パフォーマンスモニターのスクリーンショット

于 2008-09-18T20:21:31.770 に答える
2

マスターテーブルのsp_who2ストアドプロシージャは、データベース側からこれに適しています。データベースへの接続が表示されます。より多くのデータを探している場合は、プロファイリングも試してください。

于 2008-09-18T20:18:46.580 に答える
1

すべての接続が作成され、開かれ、閉じられるサービスを実装します。そこにカウンターを持ってください。接続が開かれたり閉じられたりするたびに、ロギングフレームワークでログを記録します。

于 2008-09-18T20:19:11.867 に答える
0

プロファイラーツールを使用して、既存の接続と開閉接続をすべてトレースできます

エンタープライズマネージャーからプロファイラーを開くことができます

于 2008-09-18T20:20:05.610 に答える
0

SQL 2000を使用している場合は、SQL 2000EnterpriseManagerでチェックインできます。

[現在のアクティビティ]ウィンドウを表示するにはSQLServerEnterprise Managerで、サーバーグループを展開してから、サーバーを展開します。[管理]を展開し、[現在のアクティビティ]を展開します。[プロセス情報]をクリックします。

現在のサーバーアクティビティが詳細ペインに表示されます。

http://technet.microsoft.com/en-us/library/cc738560.aspx

(Google検索から:SQL 2000の現在のアクティビティ)

于 2008-09-18T20:21:33.843 に答える
0

SQL Server ManagementStudioまたはQueryAnalyzerでsp_who2を実行して、現在のすべての接続を確認できます。それがSQLServerです。使用しているRDBMSがわかりません。

また、コードを調べて、接続が不要になったらすぐに接続を閉じるようにしてください。これについて肛門になりなさい!

于 2008-09-18T20:21:54.497 に答える
0

「using」ステートメントを使用して、接続が常に閉じられていることを確認し、この問題が二度と発生しないようにします。

using(SqlConnection connection = new SqlConnection())
{
...
} // connection is always disposed (i.e. closed) here, even if an exception is thrown
于 2008-09-23T16:33:27.163 に答える