所以-我们有一个内部公司数据库,这是通常的工作:管理客户,电话,销售交易和客户协议/方案。
它是Access 2000前端和SQL Server 2000 Standard后端。单服务器,双Xeon 3.2GHz,2GB RAM,Windows Server 2003,整天获得约40%的CPU负载,分布在OS(HT)可见的4个内核上。
后端数据库的设计欠佳,并且在不到10年的时间里有机地增长了,由经验不足的个人维护。它的规范化很差,一些明显的问题包括具有成千上万行的表而没有主键或索引,这些表在系统中使用最频繁的某些部分的多表联接中也大量使用(例如,呼叫管理器应用程序,每天在每个人的第二个监视器上放置8个小时,每隔几秒钟运行一次效率低下的大查询)。
前端并没有更好,它是典型的混乱,包括数百种形式的表格,嵌套的已保存查询,VBA代码中编写不佳的嵌入式SQL,数十个“怪癖”等,并且每当进行更改时,似乎无关的东西就会中断。我们已经选择了一个运作良好的MDB,并且由于我们内部没有Access的重量级人物(也没有计划雇用任何一个),因此现在对此没有更改政策。
该公司现在正在缓慢发展,增加了客户,呼叫等的数量,并发用户的数量也有适度的增加,并且性能最近一直在明显变差(等待在表单之间移动,等待列表填充等)。 )
Perfmon说:
- 每秒磁盘传输:0到30之间,平均4。
- 当前磁盘队列长度:徘徊在1
SQL Server的探查器每分钟看到数十万个查询。客户端上的CPU使用率几乎为零,表明它正在等待服务器端查询执行。我已经通过数据库引擎优化顾问(DB Engine Tuning Advisor)来处理此工作负载,并将其建议应用于测试备份,但这并没有太大的改变。
顺便说一下,我们在一个子网中混合了100MB和千兆以太网,两层楼有40个ish用户。
问题。
如我所见,我们有两种选择来解决/改善这种情况。
- 我们可以将其报废并将其替换为全新或定制的CRM系统
- 我们可以通过固定硬件来延长该系统的寿命。
我们可以构建具有疯狂性能数字的Intel i7系统,而成本却比更换软件少一个数量级。
最终开发出新系统时,可以将其托管在此设备上,因此不会浪费硬件。一个新的CRM系统不断推陈出新-我至少一年都不会看到这种情况。
对于这种情况的任何想法,特别是如果您自己来过这里的情况,将不胜感激。
谢谢