VB.NetおよびSQLServer2008 R2の使用:
最近、sp_who2を使用して接続を反映するデータベースがあります。.Netアプリケーションが閉じてすべての接続が破棄されても、「。NetSqlClientデータプロバイダー」は引き続きアクティブです。
コードは次のようになります。
System.Data.SqlClientをインポートします
Private Sub TestSQLConnection()
Dim strConnection As String
strConnection = "Server=MyServer;UID=User;PWD=Password;Database=MyDatabase"
Dim conn As New SqlConnection(strConnection)
conn.Open()
conn.Close()
conn.Dispose()
GC.Collect()
GC.WaitForPendingFinalizers()
End Sub
そして、アプリケーションの実行後にsp_who2を使用してSQL Serverを見ると(太字の.NetSQLClientDataProviderを見てください)
SPIDステータスログインHostNameBlkByDBNameコマンドCPUTimeDiskIOLastBatch ProgramName SPID REQUESTID
57あなたのPCで寝ています。master AWAITING COMMAND 0 0 07/19 12:38:48 * .NetSqlClientデータプロバイダー* 570
実際にアプリケーションを閉じた場合にのみ、.NetSQLClientデータ接続がビューから削除されます。私が懸念しているのは次のとおりです。1。リソースの観点から、これらのプロセスがデータベースに与える影響と、接続が反映されてスリープしている理由。2.データベースをデタッチしようとすると、1つの接続がアクティブになっていますが、コードが閉じられて破棄されています。