如何确定可以在SQL Server 2000 DB上打开的最佳连接数?

时间:2008-11-03 15:18:51

标签: sql-server-2000

SQL Server 2000 DB上可以打开的最佳连接数是多少。我知道在我以前的公司工作中,在带有Oracle 8i,8处理器机器的tru 64盒子上,我们发现8 * 12 = 96个连接似乎是一个很好的数字。 SQL Server 2000是否有这样的计算。数据库运行在2处理器(超线程4)机器上。有很多针对数据库运行的事务。我问的原因是因为我们有一个应用程序,即使它没有做任何事情,通常会留下大约100个连接打开,我很难解释这可能是我们的性能问题的原因。也许,SQL Server没有这样的限制......你们中的任何一个人都可以对此嗤之以鼻吗?非常欣赏它。谢谢,

我应该添加它是标准版。

4 个答案:

答案 0 :(得分:1)

如果您不知道这是否是您的性能瓶颈,那么您应该尝试确定,而不是试图限制连接等。

如果还没有,你应该:

  1. 使用SQL事件探查器查找长时间运行的查询。
  2. 监控数据库服务器的CPU负载,内存/页面文件使用情况和网络使用情况
  3. 找到一个运行时间最长的查询(请参阅上面的#1)并编写一个非常精简的测试应用程序,可以在高峰加载期间将此查询抛出到您的数据库服务器并记录一些响应时间。
  4. 如果#1和#2没有发现任何内容,并且#3显示您的数据库服务器在加载过程中的响应时间很慢,那么您就知道存在“连接太多”等问题。但是如果你还没有完成#3那么这样做似乎是可取的,因为连接限制很糟糕,这似乎只会造成人为的瓶颈,而不是真正让你找到问题的根源,IMO。

答案 1 :(得分:0)

MSDN上的这篇博客文章表明没有限制 - 至少在Express版本中:http://blogs.msdn.com/euanga/archive/2006/03/09/545576.aspx

这表明对于精简版 - http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.aspx

,它可能是256

这也没有限制:http://channel9.msdn.com/forums/TechOff/169030-The-difference-between-SQL-Server-2005-Express-and-Developer-Edition/?CommentID=299642

添加 - 来自评论,http://msdn.microsoft.com/en-us/library/aa196730(SQL.80).aspx表示最大值为32767,而没有“理想”

答案 2 :(得分:0)

您的性能问题不会由连接数引起。

除了sliderhouserules的回答,作为一个快速修复,我建议关闭超线程而不是限制你的连接。 link1link2(注意:这个人使用的是MS SQL 2005代码)

每个连接都需要很少的内存。共享数据库锁仅用于稳定性。

答案 3 :(得分:-1)

如果应用程序是一个运行时间很长的应用程序并且它位于同一台服务器上,那么如果应用程序离开了已创建锁定的打开数据库句柄,这对性能来说真的很糟糕。您可以检查诸如select * from sys.dm_tran_locks或sp_lock之类的内容,以便为您提供一个想法。