Я написал веб-приложение, в котором я не разрешил пул соединений для этого приложения. Я написал пример кода, как показано ниже, который получает запись из моей таблицы 20 раз и заполняет набор данных. У меня тесная связь каждый раз.
Но если я смотрю в мониторе активности SQL Server, он показывает одно открытое соединение в спящем режиме.
- кто-нибудь скажет мне, почему это происходит?
- увеличивается ли это спящее соединение, если количество пользователей увеличивается?
- Если SQL Server объединяет в пул мое соединение, тогда зачем его пул, если я не разрешил пул для этого приложения? Как я могу избежать этого?
Код для извлечения данных
Try
Dim i As Integer
For i = 0 To 20
Dim _db As New commonlib.Common.DBManager(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString.ToString())
GridView1.DataSource = _db.ExecuteDataSet(CommandType.Text, "SELECT * FROM BT_AppSetting")
GridView1.DataBind()
Next
Catch ex As Exception
Response.Write(ex.Message.ToString())
ex = Nothing
End Try
Конструктор DBManager
'CONSTRUCTOR WHICH ACCEPTS THE CONNECTION STRING AS ARGUMENT
Public Sub New(ByVal psConnectionString As String)
'SET NOT ERROR
_bIsError = False
_sErrorMessage = Nothing
_cn = New SqlConnection
_sConnectionString = psConnectionString
_cn.ConnectionString = _sConnectionString
Try
_cn.Open()
Catch ex As Exception
_bIsError = True
_sErrorMessage = ex.ToString
ex = Nothing
End Try
End Sub
Тело функции ExecuteDataSet
Public Function ExecuteDataSet(ByVal CmdType As CommandType, ByVal CmdText As String, ByVal ParamArray Params As SqlParameter()) As DataSet
Try
Dim cmd As New SqlCommand
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet
PrepareCommand(cmd, CmdType, CmdText, Params)
da.Fill(ds)
cmd.Parameters.Clear()
If _cn.State = ConnectionState.Open Then
_cn.Close()
End If
Return ds
Catch ex As Exception
_sErrorMessage = ex.ToString
_bIsError = True
ex = Nothing
Return Nothing
End Try
Пожалуйста, помогите мне .... Жду доброго ответа