MS Sql Server 2005 的并发连接数

现象:

    今天一早,觉得开发环境下的SQL SERVER 2005 数据库服务器占的内存资源过多,影响了。于是就打开Microsoft Sql Server Management Studio(MSSMS)修改配置。其中,在【连接】选项卡中,我将最大并发连接数修改为5(印象中在Mssql 2000中默认是这个),然后重新启动Mssqlserver服务。结果,在MSSMS中选菜单项【连接对象资源管理器】,使用【sa】或者集成【Windows身份认证】,均报如下错误:

-------------------------------------------------------------------------
已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) (.Net SqlClient Data Provider)

 

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=233&LinkId=20476


服务器名称: localhost
错误号: 233
严重性: 20
状态: 0

-------------------------------------------------------------------------

解决:

 

    比较纳闷,由于此时无法连接到数据库(包括使用查询分析器),所以无法使用可视化操作界面或者相关存储过程修改配置值。所以只能使用命令行方式,以特定方式启动Mssqlserver服务。在命令行方式下执行:

 

   net start Mssqlserver /f

 

   此时,使用MSSMS连接即可。修改连接数为0(0=无限制)。然后重新启动Mssqlserver服务。尝试连接,一切OK。

 

遗留问题:

  • Sql Server 2005系统自身占用的连接数是多少(可以使用sysprocesses,sp_who,@@connections等间接了解,但是不确切 )
  • 在上个问题的基础上,一般的开发环境下,应为Mssqlserver设置多少的并发连接数为宜

性能分析:

 

    由上的解决过程可以看出,影响效率性能的主要在于数据库的内存使用。在Mssqlserver 2005中,内存资源的占用最大的因素在于没有配置合适的最大/最小服务器内存(Max/Min Server Memory)。

 

    Mssqlserver 在不高于最小内存时,不会自动释放内存原则上,不低于最小服务器内存时不会释放。如果不限制最大内存,那么有新的请求时,会继续请求分配新的内存。因此,如果设置不当,Mssqlserver 会极大的消耗系统资源,尤其是在系统运行一段时间后。所以要根据数据库服务器物理内存以及应用的情况,合适的指定最大、最小服务器内存。

 

    微软建议:

  • 应根据计算机上并发运行的服务来配置虚拟内存大小。
  • 将虚拟内存大小至少配置为计算机中所安装物理内存的 3 倍。应确保有足够的磁盘空间来扩展操作系统的虚拟内存支持文件 (Pagefile.sys) 以容纳更多内存。
  • 将 SQL Server max server memory 服务器配置选项配置为物理内存的 1.5 倍。

    我的建议:

  • 在专用的数据库服务器上,将最小服务器内存配置为物理内存的一半。以减少频繁的内存回收和交换。
  • 如果物理内存足够大,将最大服务器内存配置为:物理内存 - 操作系统使用内存。为操作系统留出使用空间。
  • 如果是生产环境,安装SQL SERVER 2005的服务器物理内存应不低于4G,建议8G以上。根据连接数情况定。

   在配置好后,应重新启动Mssqlserver服务,配置项才会生效。


配置方式:

    开始,运行:Sqlwb.exe

  • 查看属性
  • 查看内存
http://static7.photo.sina.com.cn/orignal/3f2ef1184394d97620e56
(注意红框处)
http://static14.photo.sina.com.cn/orignal/3f2ef118be6081cf8504d
(我笔记本的物理内存情况)
  • 查看连接
(注意红框处)

    命令行配置方式:

    sp_configure 'show advanced options' , 1

    RECONFIGURE

    GO

    sp_configure 'min server memory' , 1024

    RECONFIGURE

    GO

    sp_configure 'max server memory' , 6144

    RECONFIGURE

    GO
 

参考:

  • Sql Server 联机帮助
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值