准备,就位,出发!SQL Server性能调整清单
作者: Jeremy Kadlec Edgewood Solutions
我需要做什么?太多了,我从哪里开始?我下一步该做什么?哇,我的SQL Server起来了!如果你从一开始就不知道要到哪里去,并且异常中断了SQL Server的运行,那么你做到了。看看这篇如何获得高性能SQL Server的性能调整清单吧。
SQL Server性能调整清单
准备
当你开始解决一个现有的性能调整问题或者从一个新的系统开始,非常期望得到高性能,那么花些时间在计划和分析如何达到项目目标吧。确保整个团队都理解了SQL Server现在正在做什么,它将会作什么,以及它以后应该如何做。
有关团队
•用正确的技术知识组建一个有才华的团队。
•确保技术团队都理解每个人的职责对组织的影响。
•为团队培训预备时间(会议、用户群、非正式的、自我节奏调节、教室等)
•筹备一个拥有技术书籍和电子资源的图书馆。
•建立一个用于测试的没有附加任何条件和强加的结果的沙盘
•不要忘记当任务完成的时候对团队进行奖励
实现
•以Web、在线事务处理、在线分析处理、移动和批处理应用程序的方式为SQL Server建立一套实际业务和技术方面的需求。
•按照可交付的和时间框架来为团队安排现实的期望。
•确保团队对当前和未来的性能需求有个明确和准确的理解,避免任何严重影响未来的意外出现。
•尽可能地做到细微的程度,努力避免存在没有涉及的问题。不幸的是,俗话说:“the devil is in the details(魔鬼隐藏于细节中)”,这句话是相当准确的。
•评估可用来解决高性能问题的时间,并把它与完成剩余的日常任务所需的时间相比,不要害怕对实际的时间结构进行沟通。
•讨论花大量时间来充分开发一个合适的系统来达到高性能与冲刺开发然后将一个需要大量维护的系统推上去相比,哪一个更好。
•定义SQL Server的正常运行时间,然后确定对达到这个正常运行时间所需的成本与性能需求的期望值。
•从技术和业务两个角度提出问题,理解系统期望的修改方式,以及在1年、3年、5年之后的增长。
•在硬件平台布置好之前,列出容量需求计划。
•让整个团队对以下问题达成一致:每天、每周、每月或者每季度基础上的SQL Servers维护。
就位
一旦你和你的团队理解了需求,是时候展示你们的IT技能了。创造性地思考平衡SQL Server自带功能、第三方产品,以及你们自己的开发之间的关系。
停下来思考
•分析需求,然后画出应用程序中每个单独组件的草图。
•在时间表上列出正式或者非正式的团队成员会议,与他们探讨有关功能性、灵活性和纯粹速度方面的潜在的具有破坏性的想法。
•想想这个环境中其他应用程序的经历,或者是以前的经历,做出计划,不仅要避免这些问题,还要应用程序中那些地方是最强的。
向成功进发
•建立硬件平台需要满足各个不同数据库组件有关灵活性的需求,用以满足其他额外的需求。
•建立硬件平台来满足不同的数据库组件对灵活性的需求,以满足额外的需求。
•开发数据库对象、中间件应用程序,以及眼睛可以看到的前台来为并行的用户提供高级别的高性能。
•对应用程序中的每个组件都进行压力测试,测试的时候与应用程序的其他部分隔离开,确保每个组件优化得都非常合适,然后再对整个应用程序进行压力测试。
•根据压力测试结果,开始优化查询以改善性能,然后重复进行压力测试以确保性能的有效性。
•为用户构建一个培训系统来教会他们如何按照设计的目标来使用这个系统,并对一部分系统用户进行负载测试,获得基线,在产品发布之前。
•最后在发布应用软件之前完成文档。让IT业内人士——不是销售冠军——来签收,并且提出有价值的参考意见,这些意见会在6个月之后,进行了另外的100个项目之后,需要添加新的功能的时候非常有用。
前进!
一旦设计和开发完成了,要确保应用程序不会迷失在混乱中。注意,它需要在很长的一段时间之内都会按照预想的情况运行下去。
打开闸门
•让小部分用户在系统上运行这个应用程序来验证性能。然后按照常规的进度表开始在系统上添加用户。
•打开SQL Server安全保卫措施,防止意外的变化卷入平静的环境,并产生负面的影响。
•建立变化管理进程,对系统的变化进行合适的管理,确保它能够回滚到原先的状态。
•检查服务器进度表,防止多个应用程序同时开启导致服务器停顿下来,以及在一个进城执行的时候,没有其他的进程执行。
注意
•每天或者每星期分配一点时间使用自带的工具(SQL Server Profiler, Performance Monitor, Index Tuning Wizard等)监控SQL Server。当SQL Server出现性能问题的时候,不应该将监控多次保存。
•构建内部可以轻松访问的脚本,当你遇到锁定和阻塞的问题的时候,或者是需要监控业务相关进程,例如用户表中的标记,或者在清单控制进程中的批处理的时候。具有这方面的系统知识会增强你的能力。
•在一般的基础上捕捉性能因素,理解并测量性能。
开始散布消息
•召开一个经验交流会议来加强项目中积极的方面,判断需要改进的领域,并且建立起实现这些项目的计划。
•计划出”午饭交流时间”以便团队成员之间可以共享知识。
《SQL Server清单》为你提供了一步一步的执行、调整和管理你的SQL Server 的建议。