使用新的SQL服务器寻求帮助。
我的一个客户端正在运行一个老化的SBS 2003服务器(Xeon 3060,4G RAM)和一行业务应用程序,使用SQL server 2005使用一个25千兆的SQL数据库。他们有14个同时使用。服务器有1G的NIC,所有东西都连接到一个48端口的千兆位交换机上。
我用一个新的服务器(Xeon E5620,48千兆内存)替换了运行2012的服务器。新服务器有4个网卡,如下所示:
虚拟机和分配的内存如下:
当第一批用户进入并开始工作时,它的功能是可以接受的,但仅仅在5-10分钟之后,性能坦克就可以发挥作用了。然后,他们在应用程序中切换“制表符”需要10-30秒。这种情况发生在有线和无线客户端上。
SQL服务器被分配了16G内存,当然SQL服务立即获得了15G内存。由于该服务器还提供另外两个小型应用程序和一个文件共享,所以我认为将SQL内存限制在10 gig是明智的。这个问题仍然存在。
考虑到我需要以一种合乎逻辑的方式来处理这个问题,我已经安装了一些软件来监控网络的各个方面,包括两个服务器上的内存和CPU的使用,两个服务器和无线的带宽。现在它已经收集了一些数据供我使用,我相信我在SQL服务器上仍然存在与内存相关的问题。
请记住,旧服务器与SBS操作系统、Exchange、all File Share和SQL 2005一起运行4G RAM的数据库,因此我认为16G应该可以。当然,我意识到这是一个不同的操作系统和不同的软件。
客户员工在早上7:30左右开始上班,性能箱在上午8:00开始工作。在下面的服务器内存图中可以看到正在发生以下情况:

从前一天12:30开始,可用内存约为4G,SQL服务停止,可用内存约为15G。上午1:00 SQL服务启动,可用内存约为5.5G7:30,员工的可用内存开始下降(员工开始登录应用程序),上午8:10性能差,员工不开心,老板不高兴=我不开心
这是一个整天都在看病人的医疗办公室。半数以上的工作人员在病人在那里的时候,会在短时间内查阅病人记录。对这些信息进行长期缓存可能是不必要的。其余的工作人员都是从同一个应用程序访问时间表、账单等。
如有任何建议,将不胜感激。
谢谢。
发布于 2013-06-13 18:22:26
可用的服务器内存可能与问题无关。SQL Server应该占用所有内存,并将其保存在自己的位置。这是故意的。
当您将Server从Server 2005升级到Server 2008时,R2是否更新了Server数据库中表上的统计信息?这需要完成,因为Server 2005中构建的统计信息不被Server 2008及更高版本所使用。
您需要查看Server内部,以了解问题的来源。只要看一下CPU、内存和网络统计数据,你就只能得到一半的图片。SQL Server执行计划将告诉您您需要知道的关于正在发生什么的一切,特别是如果统计数据过时了(我猜它们是过时的),如果缺少索引的话。此外,您需要查看索引碎片,以查看您的索引是否严重碎片,导致内存浪费和额外的物理IO。
对于读和写,IO工作负载是什么样的,特别是响应时间和每秒IO?
Server中的等待状态是什么?在运行查询时,数据库中是否存在阻塞?
停止重新启动Server实例吗?这样做只会使事情变得更糟,而且会使问题更难解决,而不是更容易解决。
应用程序中是否有大量的动态SQL,还是都是通过存储过程完成的?
发布于 2013-06-13 22:01:36
在SQL服务器上抛出硬件只会有这么大的帮助。配置错误的安装可能会降低性能,而不需要从PerfMon之类的工具中找到明显的原因。如果您没有重要的数据库调优经验,请雇用Server顾问。
如果系统在较少的硬件上执行可接受的操作,则可能会出现配置问题。一位称职的顾问应该能够在5小时内解决这个问题。(https://www.google.com/?q=sql+server+consultant)
如果您还想尝试解决问题,请看以下关于基本性能故障排除的教程:
另外,停止重新启动--您所做的一切都是导致Server释放它用来加速执行的所有有用的缓存。
https://serverfault.com/questions/515633
复制相似问题