中国开发网: 论坛: 程序员情感CBD: 贴子 158795
haitao
【转了再说】有关SQL Server内存问题
有关SQL Server内存问题
(2005.07.04) 来自:天极网





 给SQLServer分配多些内存(默认是动态分配,可以把最小值改变为一个比较大的数据)。查看把数据库的日志文件和数据文件大小,并适当调节。
  -----------------

  插入记录慢,可能是因为表使用了CLUSTERED索引,而新的记录导致了大量数据的存储位置发生变化。

  http://www.delphibbs.com/delphibbs/dispq.asp?lid=2037790

  我公司的一个POS系统,后台是sqlserver,前台是ADO,现在是ADO+midas,2年来经常会出现这个问题:当系统很忙的时候(商场生意好的时候),sqlserver就会变的没有响应,然后所有前台全部死机,一个月概会出现一两次,找了很久了,都还不知道是sqlserver还是程序存在问题?如果哪位有过这方面的经验,还望不吝赐教,给些提示,感谢!

  http://www.delphibbs.com/delphibbs/dispq.asp?lid=2636792

  数据库在很大程度上具备自主调节能力。随着内存的不断增大,SQLServer将扩大内存使用空间,当来自其他应用的内存压力增大时,SQLServer将随之释放部分内存空间。与此相似,SQLServer还将根据实际需要动态扩充或收缩数据库及日志空间。

  http://www.microsoft.com/china/technet/prodtechnol/sql/2000/plan/ssmsam.mspx

  bytheway我是做证券软件的,数据量一般大于1亿条,SQLSERVER经常吃到2-4G内存

  但系统运行良好

  其实事情不是这么简单。

  Mssql在内存的释放上是有问题的。

  如果真的是海量数据(所谓海量,绝非只一两百个G的概念),你会发现,在一个短时间内,如果联系作大量的查询等操作,它占用的内存会不断上升,接着数据库的速度会明显下降,往往在这个时候,如果重新启动系统,就可以解决问题。和微软联系过,目前无好的解决方案。

  后来我们自己做了好几个组件来提高它的效率,效果虽然不是很好但也可以接受。象数据库这东西,特别是Mssql,在数据量大的情况,确实不大好用。但是因为它和微软自己的操作系统的连接比较好做,嗯,所以还是只好用他的。

  http://www.delphibbs.com/delphibbs/dispq.asp?lid=1775126

  改用oracle了。

  http://www.delphibbs.com/delphibbs/dispq.asp?lid=287033

  服务器内存是1G,两天之后通过任务管理器观察,使用内存已占用900M多,其中线程sqlservr占用最多,而客户连接数才几个。

  http://www.delphibbs.com/delphibbs/dispq.asp?lid=2144996

  下面的文章或许对你有帮助:

  http://www.ck23.com/net/html/2003-7-27/2003727151935.htm

  千万不要在DELPHI中使用服务器端游标,否则很快就会消耗完你服务器上的内存。

  http://www.delphibbs.com/delphibbs/dispq.asp?lid=2144996

  前面说了,这正是sqlserver的优点,因为它提供了缓冲内存,即使用户暂时下线,它也不会释放全部缓存。

  当然,它也不会占用内存一直不释放,一旦它检测到操作系统分配内存不够时,它会及时释放内存,不信你可以如此检测,用户下线后,在服务器端运行photoshop这样占用系统内存比较大的软件测试一下,保证此时sqlserver会释放部分内存。
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录