Sql server SQL Server池问题

Sql server SQL Server池问题,sql-server,connection-pooling,Sql Server,Connection Pooling,我编写了一个web应用程序,其中不允许此应用程序的连接池。我已经编写了如下所示的示例代码,它20次从我的表中获取记录,并填写我每次都有密切联系的数据集 但如果我查看SQLServer活动监视器,它会显示一个在睡眠模式下打开的连接 有人告诉我为什么会这样吗? 如果用户增加,睡眠连接是否会增加? 如果SQL Server对我的连接进行池化,那么如果我不允许此应用程序进行池化,为什么要进行池化?我怎样才能避免这种情况? 获取数据的代码 Try Dim i As Integer For i =

我编写了一个web应用程序,其中不允许此应用程序的连接池。我已经编写了如下所示的示例代码,它20次从我的表中获取记录,并填写我每次都有密切联系的数据集

但如果我查看SQLServer活动监视器,它会显示一个在睡眠模式下打开的连接

有人告诉我为什么会这样吗? 如果用户增加,睡眠连接是否会增加? 如果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

请帮帮我。。。。等待善意回复

1我认为sql server没有立即关闭连接。这就是你看到它的原因

2由于您正在关闭连接,因此应该只看到一个连接。除非您的用户同时运行代码。e、 g如果它在一个网页中,并且有2个用户,那么您将/应该看到2个连接

此外,如果你不关闭你的连接只是为了尝试你的连接数应该:上升


共享连接的是您的.net应用程序,而不是sql server。

请显示您的连接字符串!除非明确关闭连接池,否则默认情况下它将是池;还有-你到底为什么要关掉它???