Использование VB.Net и SQL Server 2008 R2:
У меня недавно была база данных, в которой использование sp_who2 отражает соединение. «Поставщик данных .Net SqlClient» по-прежнему активен, хотя приложение .Net закрылось и удалило все соединения.
Код выглядит так:
Импортирует 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
И когда я смотрю на SQL Server usng sp_who2 после запуска приложения (посмотрите на жирный .NetSQLClientDataProvider)
Идентификатор статуса SPID Имя хоста BlkBy Команда DBName CPUTime DiskIO LastBatch Имя программы SPID REQUESTID
57 спит ваш ТВ. master AWAITING COMMAND 0 0 07/19 12:38:48 * .Net SqlClient Data Provider * 57 0
Только когда я на самом деле закрою ПРИЛОЖЕНИЕ, соединение .Net SQLClient Data будет удалено из представления.
Что меня беспокоит, так это следующее:
1. как эти процессы влияют на мою базу данных с точки зрения ресурсов и почему связь отражается и спит.
2. Когда я пытаюсь отсоединить базу данных, я вижу, что 1 соединение активно, но код закрыт и удален.