如何判断SQL连接太多?

时间:2009-03-27 22:57:12

标签: sql-server connection-string

我正在创建一个我想要作为服务提供的网站。每个客户都有自己的数据库,每个站点需要两个数据库。如果我有100个活跃客户并且他们都在他们的网站中工作,我可以有200个不同的连接字符串。

我如何知道有多少?我不想等到遇到问题 - 我想提前做好计划。

3 个答案:

答案 0 :(得分:2)

连接数对于设置限制并不是特别有用的资源。服务器上的负载对这些连接上的操作更加敏感。你会用这些知识做什么?达到限制后拒绝连接?你怎么知道超过这个限制会开始降低用户体验?

答案 1 :(得分:1)

您使用的是ASP.NET吗? .NET通过连接池重用SQL连接。真正的问题是,有多少连接是直接打开的:

select COUNT(*) 
from master.dbo.sysprocesses p
join master.dbo.sysdatabases d on p.dbID = d.dbID
where d.name = '<database>'

您可以从DAL中调用此声明,但我认为这不是必要的。为什么?我有使用MSSQL 2000的经验。它与开放连接的数量很稳定。

如果您的网络服务无状态(这是我认为的常见且良好的模式),您可以避免这种连接问题。

statefull (我的意思是有一个永久的开放连接)服务很难规划,我认为你应该重新考虑你的设计。

答案 2 :(得分:1)

负载测试。

编写一个小型多线程控制台应用程序,打开许多您想要建立的连接并自行检查。尝试确定每个连接将执行多少查询执行,并确保在测试中包含该查询。在运行测试时,打开数据库服务器上的性能监视器并观察CPU周期。弄清楚你的CPU循环基准是什么,当你完成后,你就得到了答案。确保您的测试设置的数据库服务器与您将要在生产中运行的服务器完全相同。

不要等到遇到问题。您的客户对此不满意。