欢迎来到天天文库
浏览记录
ID:9222719
大小:2.24 MB
页数:68页
时间:2018-04-23
《sql server 监视与优化解决方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQLServer2008R2监控与调优解决方案PerformanceTurningSQLServer2008R2的架构概要性能调优性能监控性能调优的方法学架构设计查询优化索引优化并发控制存储优化服务器优化•表•存储过程•覆盖查询•锁•文件组•内存性能最•视图•事务•分区•处理器亲和度优化最困难调优顺序最简单但最有成效但是收效最少如何设计良好的关系型数据库架构对数据热区的判断根据数据热区定义索引、表分割定义优化SELECT查询尽量将数据存储在同一张表中使用索引及索引覆盖策略优化UPDATE事务尽量将需要更新的数据放在一张较小的表中优化
2、DELETE事务在大规模删除中评估分区的效果优化INSERT事务减少对自动编号的依赖性能调优的方法学架构设计查询优化索引优化并发控制存储优化服务器优化•表•存储过程•覆盖查询•锁•文件组•内存性能最•索引视图•事务•分区•处理器亲和度优化最困难调优顺序最简单但最有成效但是收效最少使用有效的查询参数SARGs(查询参数的有效格式)限制以完全符合、一个范围的值、或是以AND连接两个以上的项目来定义搜寻。格式数据字段部分的运算符<常数或变量><常数或变量>部分的运算符数据字段符合SARGs的范例FirstName=‘王’600003、aryFirstName=‘王’andSalary>60000容易犯的错误对数据字段进行运算Select*fromEmployeeswhereLastName+’,’+FirstName=‘Davolio,Nancy进行负向查询NotExists、NotIN、NotLike、!=<>!>!<等在where语句中对数据字段使用函数Select*from[orderdetails]whereABS(quantity-100)<1使用OR运算符使用OR做运算符,则需要所有的字段都有可用的索引使用T-SQL的注意事项Select语法尽量不要4、传回所有的数据表内字段且不配置过滤条件若使用复合索引,则索引顺序上的第一个字段才适合当作过滤条件Distinct,Orderby等语法尽量到查询结果需要时才使用UnionAll要比Union好若未将连接事务级别降低到ReadUncommited,或是通过锁提示NOLOCK来降低阻塞的机会,最好配置SETLOCK_TIMEOUT选项,避免用户无尽等待使用T-SQL的注意事项Insert、Delete和Update大量批处理数据操作时,无Log的行为一定比逐笔数据由两次写入(先记录Log再写数据库)快。在Update和Delete采用Where5、子句时,记得条件也要符合SARGs格式查询调优选项使用OPTION子句调用表提示或视图提示OPTION(TABLEOPTION(dbo.Orders,IDNEX(IX_OrderID)))FORCESEEK提示FROMOrdersWITH(FORCESEEK)OPTION(TABLEHINT(dbo.Orders,IDNEX(0),FORCESEEK))sys.fn_validate_plan_guide函数用于验证强制计划的有效性计划指南支持XMLShowPlan参数为监控强制计划设计了新的事件类(PlanGuideSuccessful6、和PlanGuideUnsuccessful)以及性能计数器(SQLServerSQLStatistics对象下的GuidedPlanExecutions/sec计数器和MisguidedPlanExecutions/sec计数器)性能调优的方法学架构设计查询优化索引优化并发控制存储优化服务器优化•表•存储过程•覆盖查询•锁•文件组•内存性能最•视图•事务•分区•处理器亲和度优化最困难调优顺序最简单但最有成效但是收效最少是否值得建索引选择性数据密度数据分布统计在多个字段上使用索引复合索引索引覆盖查询(include)什么是数据库引擎优化顾问?7、使用工作载荷分析数据性能提供图形化和命令行两种方式工作载荷数据库引擎优化顾问报表和建议数据库和数据库对象索引碎片碎片如何产生的当数据被修改或者导致索引页面分裂,SQLServer会重组索引页面解决方法<=30%碎片=Reorganize>30%碎片=Rebuild筛选索引应用场合对特殊的属性值进行索引对指定分区的值进行索引常见场合产品目录仅对热门商品的属性进行索引数据仓库仅对最近三个月的销售订单进行索引仓储系统仅对未标记为空的商品进行索引筛选索引的工作原理IDNameatt1att2att3att4att5att6att7a8、tt8att91Aax2Bdf3Ctj4Dmu5Ekl6Ftko7Gw8Hhu9
3、aryFirstName=‘王’andSalary>60000容易犯的错误对数据字段进行运算Select*fromEmployeeswhereLastName+’,’+FirstName=‘Davolio,Nancy进行负向查询NotExists、NotIN、NotLike、!=<>!>!<等在where语句中对数据字段使用函数Select*from[orderdetails]whereABS(quantity-100)<1使用OR运算符使用OR做运算符,则需要所有的字段都有可用的索引使用T-SQL的注意事项Select语法尽量不要
4、传回所有的数据表内字段且不配置过滤条件若使用复合索引,则索引顺序上的第一个字段才适合当作过滤条件Distinct,Orderby等语法尽量到查询结果需要时才使用UnionAll要比Union好若未将连接事务级别降低到ReadUncommited,或是通过锁提示NOLOCK来降低阻塞的机会,最好配置SETLOCK_TIMEOUT选项,避免用户无尽等待使用T-SQL的注意事项Insert、Delete和Update大量批处理数据操作时,无Log的行为一定比逐笔数据由两次写入(先记录Log再写数据库)快。在Update和Delete采用Where
5、子句时,记得条件也要符合SARGs格式查询调优选项使用OPTION子句调用表提示或视图提示OPTION(TABLEOPTION(dbo.Orders,IDNEX(IX_OrderID)))FORCESEEK提示FROMOrdersWITH(FORCESEEK)OPTION(TABLEHINT(dbo.Orders,IDNEX(0),FORCESEEK))sys.fn_validate_plan_guide函数用于验证强制计划的有效性计划指南支持XMLShowPlan参数为监控强制计划设计了新的事件类(PlanGuideSuccessful
6、和PlanGuideUnsuccessful)以及性能计数器(SQLServerSQLStatistics对象下的GuidedPlanExecutions/sec计数器和MisguidedPlanExecutions/sec计数器)性能调优的方法学架构设计查询优化索引优化并发控制存储优化服务器优化•表•存储过程•覆盖查询•锁•文件组•内存性能最•视图•事务•分区•处理器亲和度优化最困难调优顺序最简单但最有成效但是收效最少是否值得建索引选择性数据密度数据分布统计在多个字段上使用索引复合索引索引覆盖查询(include)什么是数据库引擎优化顾问?
7、使用工作载荷分析数据性能提供图形化和命令行两种方式工作载荷数据库引擎优化顾问报表和建议数据库和数据库对象索引碎片碎片如何产生的当数据被修改或者导致索引页面分裂,SQLServer会重组索引页面解决方法<=30%碎片=Reorganize>30%碎片=Rebuild筛选索引应用场合对特殊的属性值进行索引对指定分区的值进行索引常见场合产品目录仅对热门商品的属性进行索引数据仓库仅对最近三个月的销售订单进行索引仓储系统仅对未标记为空的商品进行索引筛选索引的工作原理IDNameatt1att2att3att4att5att6att7a
8、tt8att91Aax2Bdf3Ctj4Dmu5Ekl6Ftko7Gw8Hhu9
此文档下载收益归作者所有