2

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

我应该添加它是标准版。

4

4 回答 4

1

如果您不知道这是否是您的性能瓶颈,那么您应该尝试确定这一点,而不是尝试限制连接或其他东西。

如果你没有,你应该:

  1. 使用 SQL Profiler 查找长时间运行的查询。
  2. 监控您的数据库服务器的 CPU 负载、内存/页面文件使用情况和网络使用情况
  3. 找到一个运行时间最长的查询(参见上面的#1)并编写一个非常精简的测试应用程序,它可以在峰值负载期间将此查询抛出到您的数据库服务器并记录一些响应时间。

如果 #1 和 #2 没有发现任何东西,并且 #3 显示您的数据库服务器在加载期间的响应时间很慢,那么您就知道您遇到了“连接太多”之类的问题。但是,如果您还没有完成#3,那么这样做似乎是可取的,因为处理连接限制等似乎只会造成人为的瓶颈,并不能真正让您找到问题的根源,IMO。

于 2008-11-04T05:41:10.393 回答
0

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

这表明它可能是 256,对于精简版 - http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.aspx

这也表明没有限制: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,而没有“理想”

于 2008-11-03T15:35:03.830 回答
0

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

除了sliderhouserules 的回答之外,作为快速解决方法,我建议关闭超线程而不是限制您的连接。 link1 , link2(注意:这个人在 MS SQL 2005 代码上工作)

每个连接都占用微不足道的内存量。共享数据库锁仅用于稳定性。

于 2008-11-04T05:59:29.700 回答
-1

如果应用程序是一个长时间运行的应用程序并且它在同一台服务器上,如果应用程序留下打开的数据库句柄并创建了一个锁,这对性能来说确实很糟糕。您可以检查 select * from sys.dm_tran_locks 或 sp_lock 之类的内容来给您一个想法。

于 2008-11-04T03:29:22.080 回答