3.profiler是个好东西,谁用谁知道
如果把日志文件(ldf)按照默认的百分比10%增长,同样当db业务量很大或者有大事务的时候,日志会蹭蹭的增长,假如现在日志文件大小是100g,那每次增长步长就是10g,各位可以想一下如果数据库突然像磁盘申请10个g的空间,那当时的io情况会是什么样
如果按照数据文件(mdf)按照默认的1m增长,同时db的业务写入比较频繁,那数据库就会频繁的向磁盘请求空间,会造成不必要的io消耗,也会因为申请空间造成资源等待等问题
2.建议给系统预留一些内存根据内存大小预留(服务器64g内存一般我限制sqlserver到60g,留4个g给系统用数据库的种类,还是那句话根据业务情况来定)比如你的服务器内存是64g,现在sqlserver进程占用50g,这时候如果你做备份操作的时候,这个操作消耗的不是sqlserver占用的50g,而是剩余的14g内存还有一些其他的操作也会占用非sqlserver的内存,例如索引重建(这个记忆模糊了准确性有待考证)假如现在sqlserver把64g内存都占满了,这时候你需要备份,那内存从哪来呢?只能让sqlserver释放缓存中的一些对象来给你提供备份的内存如果现在业务繁忙可能就会因为内存不足或者内存命中引起性能问题了
前言:任何的优化和修改都是以业务情况为前提,可能有的写的有误或者不准确的地方,欢迎各位来拍砖
1.在创建db的时候自增长建议设置数据库优点成按mb(m)增长,步长根据业务量来设置,一般情况建议设置100-200m(见图片),还有就是尽量别改初始大小,这个默认就好
4.windows的性能监视器是监控sqlserver性能必备的工具(友情提示:快捷键是perfmon.msc)具体监控指标见 http://