阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 3146|回复: 9

[原创] 【五月征文】我于“sql2000”不得不说的故事

[复制链接]
  • TA的每日心情
    奋斗
    2012-4-19 15:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-5-30 11:33:40 | 显示全部楼层 |阅读模式
    看了  关于打造优秀行业软件技术交流论坛倡议 公告。 本着:上ERP系统找死,不上ERP系统等死 这句行话的理解。
    刚刚来这个阳光驿站,我也是奔着索取PJ速达7000的目的。和很多用户一样,没有锭,下载不到软件。于是开始瞎逛,想看看这个论坛到底有没有更多我需要的东西。终于让我发现了关于打造优秀行业软件技术交流论坛倡议公告,这篇文章应该是同行之间不可多得的经验总结。
    我联想到我们公司2007年上了ERP软件。用到了SQL2000数据库所带来的一些问题。同时经过了2年多的使用,也总结了一些经验。
    刚刚开始上ERP,从SQL2000的占用内存来看,仅仅是1G的空间,那时候服务器新买的,ERP软件也是新的。总体速度感觉不错。但随着时间和数据越来越庞大。  因为我们公司是中药行业,所涉及到得产品和别的公司有明显区别,一个中药有 克数,批号,规格,产地,等等细节问题,记录数以不可预计的方式来累加,导致SQL数据库在仅仅1年多的时候里开始迅速庞大。带来的问题:
    1:  SQL2000内存占用从开始的1G到1.7G,众所周知的SQL最大内存占用率。
    2:服务器本来是2G内存,因SQL的占用,导致服务器响应时间变的无法想象的慢。
    3:CPU开始慢负荷运转。
    2008年年底,因无法忍受ERP系统变得异常的慢,我这个兼职网管接到领导的指示开始寻求解决办法。
    首当其冲的就是更换服务器,或者加内存,为了公司的长远发展,我还是选择了更换新的服务器。
    新的服务器到手之后,SQL2000占用的内存还是1.7G,远远无法满足公司日常运营,我这个数据库半吊子开始寻求其他解决办法。
    看了相关的资料:MSSQL是怎样使用内存的。
    最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉。所以一般我们在看statistics io的时候,看到的physics read都是0。 其次就是查询的开销,一般地说,hash join是会带来比较大的内存开销的,而merge join和nested loop的开销比较小,还有排序和中间表、游标也是会有比较大的开销的。
    如果系统中没有其它应用程序来争夺内存,数据缓存一般是越多越好,甚至有些时候我们会强行把一些数据pin在高速缓存中。但是如果有其它应用程序,虽然在需要的时候MSSQL会释放内存,但是线程切换、IO等待这些工作也是需要时间的,所以就会造成性能的降低。这样我们就必须设置MSSQL的最大内存使用。可以在SQL Server 属性(内存选项卡)中找到配置最大使用内存的地方,或者也可以使用sp_configure来完成。如果没有其它应用程序,那么就不要限制MSSQL对内存的使用。
    那新的服务器内存4G,如何做到让SQL2000尽可能的利用到能够用的内存。
    查阅了一些资料。整理出来
    [boot loader]
    timeout=10
    default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2003 Server " /fastdetect  /pae /3gb

    需要在BOOT.INI中添加 和 "/PAE"参数就可以了

    在 Windows Server 2003 中,仅当服务器使用热添加内存设备时才会自动启用 PAE。在这种情况下,不需要在配置为使用热添加内存设备的系统上使用 /PAE 开关。在其他情况下,必须在 Boot.ini 文件中使用 /PAE 开关来利用大于 4GB 的内存。

    典型情况是,在 Windows 2000 或 Windows Server 2003 下运行的进程最多可以访问 2 GB 的内存地址空间(假设未使用 /3GB 参数),其中一些内存是物理内存,另一些是虚拟内存。运行的程序越多(因而进程也越多),占用的内存地址空间也就越接近 2 GB 这一最大值。

    当出现这种情况时,分页进程将显著增加并且会对性能产生负面影响。Windows 2000 和 Windows Server 2003 内存管理器使用 PAE 向程序提供更多的物理内存。这会降低对交换页面文件内存的需要,从而提高了性能。程序本身并不知道实际的内存大小。所有的内存管理和 PAE 内存分配都由内存管理器处理,与运行的程序无关。

    全部搞定之后,公司的ERP速度明显提升一个档次。

    也算是一种学习吧。   

    最后的忠告:钱是公司的,事是自己的,别为了替公司省钱用盗版,给自己找罪受。阳光网驿. o7 u; r$ ]9 J* A, P- R3 e$ e8 X
    这句话太精辟了。

    [ 本帖最后由 幽人清事 于 2009-5-31 15:17 编辑 ]

    评分

    参与人数 1阳光币 +20 收起 理由
    幽人清事 + 20 征文奖励。写的确实很不错。

    查看全部评分

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2012-12-6 11:05
  • 签到天数: 714 天

    [LV.9]以坛为家II

    发表于 2009-5-30 12:17:56 | 显示全部楼层
    技术的活不太在行
    不过主旨句说的不错。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2017-5-9 23:57
  • 签到天数: 535 天

    [LV.9]以坛为家II

    发表于 2009-5-30 12:23:38 | 显示全部楼层
    楼主写的篇幅不小哦,费了不少心思,支持一下!
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    无聊
    2015-4-24 01:56
  • 签到天数: 1341 天

    [LV.10]以坛为家III

    发表于 2009-5-30 12:56:04 | 显示全部楼层
    技术的活确实太累了 ~~~~~~~~~~`
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-5-30 15:05:40 | 显示全部楼层
    我们这种小企业,还用不上ERP这样的系统。

    现在的情况就是,企业是自己家族的,所以还是能少花钱尽量少花钱~哈哈,技术的东西,慢慢学~
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    难过
    2011-3-8 15:46
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    发表于 2009-6-1 21:11:54 | 显示全部楼层
    自己用能省一块是一块  看来楼主是个高手
    要多多向楼主学习学习
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-6-8 17:23:03 | 显示全部楼层
    做技术的,哎。一肚子苦水啊
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-6-11 15:20:15 | 显示全部楼层

    回复 1楼 erichfromm 的帖子

    SQL2000感觉有点庞大,其实一般应用,SQL7.5就OK了.
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-7-23 18:07
  • 签到天数: 41 天

    [LV.5]常住居民I

    发表于 2009-7-18 19:26:30 | 显示全部楼层
    楼主的分析很细,解决方法也实用,谢谢分享
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-8-24 12:04:31 | 显示全部楼层
    最后的那句话真的是真理,很精辟~~~~!!!
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表