- 它是什么?
- 如何使用 MS SQL 实现连接池?
- 什么时候出现性能影响
- 一个接一个地执行许多查询(即使用一个循环调用存储过程的 30K+ 迭代)?
- 执行一些需要很长时间(10 分钟以上)的查询?
- 有没有最佳实践?
Terrapin
问问题
2439 次
4 回答
3
连接池是一种重用连接的机制,因为建立新连接很慢。
如果您使用 MSSQL 连接字符串和 System.Data.SqlClient,那么您已经在使用它 - 在 .Net 中,这些东西大部分时间都在幕后。
30k 次迭代的循环作为服务器端游标(查找 T-SQL 游标语句)可能会更好,这取决于您对存储过程之外的每个步骤执行的操作。
长查询很好 - 但要小心从网页调用它们,因为 Asp.Net 并没有真正针对长时间等待进行优化,并且一些连接会中断。
于 2008-08-12T20:53:40.690 回答
2
关于连接池的更多信息......您已经在 SqlClient 中使用它,但前提是您的连接字符串对于您打开的每个新连接都相同。我的理解是,框架会在可能的情况下自动连接连接,但是如果连接字符串从一个连接到下一个连接甚至略有不同,那么新连接将不会来自池 - 它会被重新创建(所以它更昂贵)。
您可以将性能监视器应用程序与 XP/Vista 一起使用来监视 SQL 连接,并且您会很快看到是否正在使用池。在性能监视器中的“.NET CLR 数据”类别下查看。
于 2008-08-12T21:07:35.233 回答
0
我支持基思;如果您调用存储过程 30,000 次,那么您遇到的问题要比连接池大得多。
于 2008-08-12T21:13:21.850 回答