ADO.NET Connection Pooling & SQLServer
连接池是一种重用连接的机制,因为建立新连接很慢。 如果您使用MSSQL连接字符串和System.Data.SqlClient,那么您已经在使用它-在.Net中,大多数情况下,这些内容都在幕后。 作为服务器端游标(查找T-SQL游标语句)的一个30k迭代循环可能更好,具体取决于您对sproc外部的每个步骤所进行的操作。 较长的查询很好-但是请小心从网页调用它们,因为Asp.Net并未真正针对长时间的等待进行优化,并且某些连接会中断。 有关连接池的更多信息...您已经在SqlClient中使用它,但前提是您打开的每个新连接的连接字符串均相同。我的理解是,该框架会在可能的情况下自动池化连接,但是如果连接字符串在一个连接与另一个连接之间的变化甚至很小,那么新的连接就不会来自该池-它是重新创建的(因此更昂贵) )。 您可以将Performance Monitor应用程序与XP / Vista一起使用以观察SQL连接,并且很快就会看到是否正在使用池。在性能监视器中的" .NET CLR数据"类别下查看。 我第二个基思;如果您要调用一个存储过程30,000次,则问题要比连接池大得多。 这个主题也部分回答了您的问题。通过搜索可以发现这一点。Connection Pooling的定义,其中Google会以第一个命中结果为答案。 这将留下最佳实践,我认为这将是一个很好的问题:) 对基思的答案+1。他已经把头钉在了头上。 只是从FAQ中礼貌地提醒您:
|