sql 长时间运行后出现虚拟内存溢出 Win NT 死机 , 救命!!!(200分)

  • 主题发起人 主题发起人 sz960507
  • 开始时间 开始时间
S

sz960507

Unregistered / Unconfirmed
GUEST, unregistred user!
操作系统:Win Nt 4.0
数据库:SQL Server 6.5 Server
内存:64M
已经将SQL的Truncate Log on Checkpoint 选项打开,tempdb in ram 设置为30M,Memory
设置为16M
机器一年不关机
有一个进程对数据库频繁的进行添加和删除操作 , 运行一段时间后 出现虚拟内存不够,
死机。
个位高手 就命呀!!!
 
一年不关机!一般来说NT工作联系工作一个星期后最好重启动一次,原因就是内存碎片(网上
和杂志上都有说),时间长短也不定,主要看进程处理量。
 
我得经验是对于MS SQL Server,处理超过万条以上的记录集
时,128MB是它的一个性能临界容量。
要么加大内存,要么缩小表的规模
 
首先,对于Win NT 来说,64M内存也是不够的,不用说是运行Sql 6.5,运行其他的软件你
都会听到硬盘在咔咔的响。
既然你这个机器要一年不关机,那要么给这台机器加内存,或者将你的机器的虚拟内存设的
大一点,缺省你的机器的虚拟内存是64M,将设大一点试试
 
>tempdb in ram 设置为30M,Memory
就这里出的问题!改!放在硬盘上
还有,装最新版本的mssql service pack(5?6?)
 
瘟都死的发明者好像没有宣传他们的东西可以"一年不关机",我记得他们只是让我认识了
什么是死机.
除了所谓的SQL server外,好像NT这头猪也不能一年不死过去.
你如果要想让任何东西存在一个月以上,最好用UNIX核心的操作系统,虽然NT也是微内核的
(那是微软当初假惺惺与SUN合作时偷的东西),但终究是猪的后代,哎....不说也罢.
微软让不少程序员变懒了,有点不求甚解,有点更象办公室的小姐和热衷于游戏的孩子.
试一试Linux+postgresql | mysql.它会让你三年不死机,赌1000分.



 
记得以前MS承认98有一个BUG:连续工作N个月后会死掉。
当时人们都怀疑:有没有人用WIN98可以连续工作X周的。。。 :)

也许什么也不做,空转几个月,它都会自己死悄悄也说不定!
 
Truncate Log on Checkpoint 关掉!!!!!
现在我们先不讨论M$本身的问题。
LOG是个吃硬盘的高手,特别是对某记录进行Delete/insert操作的时候。log文件的增长
会吓死你!!!!!!!!!!!!
其实我的NT都保持了一年不死机的壮举,当然是速度比较慢。Temp disk in ram 也不要设
那么大,其实影响速度的主要是数据库的index和通讯协议。
 
“瘟都死”不如叫“瘟到死”,也许更好听些,也顺口些。

不过,瘟也好,死也好,大家都在用,现在给个小公司做个管理软件,
Unix,Linux用不上啊,你会,人家操作员还不会呀。

我希望有专门讨论怎样在Linux上开发大众都可以使用的软件,而不是
高手自己欣赏的精品。
 
也不要说nt就不能长时间工作,我管的一台nt是oracle数据库的,
几个月连续没问题,而每次重启动都是一些其他的原因,比如数据库
要升级、机房要停电检修等等。

关键是设置要合理,以及运行的程序要没问题
 
to CJ:
SP3
你的判断与我差不多 , 感觉是tempdb in ram 设置有问题,请问依你的经验多大合适,
如果设置为0 是什么意思

to Chenlili:
很希望听听你的建议。死机后,再运行程序就连接不上数据库了,感觉数据库除了问题。

我对处理速度的要求不是很高。
 
我感觉是tempdb in ram 设置有问题.我们用的是默认值.
我们改的几项是:Allow updates 0-->1,memory 8192-->81920
open objects 500-->5000,user connections 15-->400
但这些好象与你的没有关系呀.
我们用的与你的一样.几个月也不用重启.
 
tempdb放在磁盘上不好吗?用默认值可以吧……
你把MSSQL6.5生级到SP5看看吧(也许有6的)
MSSQL6.5基本上就是SYBASE,其性能和稳定性基本可以信赖的。
另外你监视一下,看程序是否有问题?
 
多人接受答案了。
 
后退
顶部