前言:
一直想写一些关于SQL Server 数据库优化的文章,不过介于本人能力有限,一直不敢班门弄斧。
如今,想把已经整理好的几章放在博客上和大家分享,与君共勉。
分析问题:
对于优化来说,准确的找到问题点才是重中之重。接下来的几章会重点介绍如何去准确的发现问题,并迅速的提出最有效的解决方案。
获得问题关键点的方式方法会有很多,虽说自己动手丰衣足食,但最直接的就是听客户或者提出者的需求,并详细的询问需求。
例如:某个查询慢,某个操作慢等;当然更高端的就是直接告诉您哪条语句慢(一般来说能确定到语句的都是我们的同事)。
最直接的就是客户现场的同事在维护软件或是开发软件中发现的语句问题;对于售后的同事来说,找到问题的关键,是个很费时费力的事情。所以,本章会介绍一些迅速的能查到问题关键点的方法。
硬件配置:
硬件配置不足,是一些老客户主要存在的问题之一;很多客户可能早在4、5年前就使用了XX软件;随着企业的逐步发展,业务也不断的扩大。但服务器仍然是4、5年前的配置,造成了小马拉大车的现象。所以,查看硬件配置是一个非常简单的事情。操作方法如下:
右键【我的电脑】---属性
打开后,我们可以看到:
1、查看系统,一般来说服务器会是Windows server 2008,早些年的会是Windows server 2003。
2、 查看处理器(CPU)
一般来说,都会使用服务器专用的CPU,例如医药软件:(100家以上门店)较高的配置是8核的cpu安装2-4个;一般的会是6核cpu安装2-4个。当然这些配置也是一个粗略的值,要是更精确的算的话,会考虑客户的门店数量、门店日销量、总部使用数量等很多因素。
3、 查看内存,微软推荐1core对应2-4G的内存。
4、 系统类型,一般来说,服务器都会选用64位的操作系统。因为32位的操作系统支持的最大内存仅有4G,一般往往不到4G;可识别内存也就是3.5-3.75G左右。
CPU:
查看cpu的使用率。
启动任务管理器,
CPU的使用率在80%以上,而且持续不下降的话,服务器就很危险了。
查看进程,按cpu排序,看看是哪些应用占了CPU。
一般来说会有3种情况:
1、 非SQL Server 应用占用cpu
查看应用,是否是系统应用;不是的话可以结束该进程,并查看启动项中是否该进程一直启用或开机启用等。
运行msconfig:
2、 SQL server占用cpu较高
如果是SQL server占用的cpu较高,一般会是发生在有数据库作业在运行,或者是有不合理的SQL语句。
3、 未发现应用占用较高的cpu
一般来说是中毒了……建议查杀病毒。
内存:
查看内存使用情况。
内存一般来说使用率在90%以上就很影响系统操作了。
主要的占用内存的一般会是SQL Server。
处理办法就是设置SQL Server的最大内存。
右键数据库服务—属性
设置最大服务器内存。
对于已经占用的内存,系统是不会自动减少的;为了减少内存的使用率,需要手动的先设置成较小的内存,(目的是为了降低任务管理器中内存的使用率)等内存使用率降下来之后,再去设置服务器的最大内存。设置的原则一般会是给系统留4G内存,其余的分配给SQL Server。(服务器没有其他应用的情况)
---------------------------华丽的分割线-----------------------------------