它是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使用率几乎为零,表明它正在等待服务器端查询执行.我已将此工作负载通过数据库引擎优化顾问,将其建议应用于测试备份,但这并没有太大的区别.
顺便说一下,我们有100MB和千兆以太网的混合,所有这些都在一个子网上,40个用户分为两层.
对于这个问题.
在我看来,我们有两种选择来解决/改善这种情况.
>我们可以废弃它并用全新的CRM系统替换它,无论是定制还是部分定制
>我们可以通过清理硬件来延长该系统的使用寿命.
我们可以构建一个具有疯狂性能数字的Intel i7系统,其成本比更换软件要低一个数量级.
当最终开发出一个新系统时,它可以托管在这个盒子上,因此没有浪费的硬件.一个新的CRM系统不断被推迟,关闭和关闭 – 我看不到这种情况发生至少一年.
任何关于这种情况的想法,特别是如果你自己来过这里,都会非常感激.
谢谢
解决方法
出于这个原因,我实际上是要为一家公司托管一套网络应用程序.内部IT部门不会将其转移到更好的硬件上,因为他们希望在新平台上重新开发它们.该成本大约是将其转移到新硬件所需成本的三倍.不用说公司可能在一年内没有续签合同.