RDS SQL Server CPU高使用率性能优化


RDS SQL Server CPU高使用率性能优化 阿里云技术专家 汪建明 (风移) 索引 数据类型转换 Non-SARG 统计信息 参数嗅探 分享议程 TOP SQL  MSSQL实例CPU使用率: RDS SQL 控制台 => 监控与报警 => 监控 => 资源监控 => MSSQL实例CPU使用率 RDS SQL CPU使用率性能指标 索引缺失  缺失索引  DTA (Database Tuning Advisor)  执行计划索引缺失警告  解析执行计划缓存XML  缺失索引动态管理视图  sys.dm_db_missing_index_group_stats  sys.dm_db_missing_index_groups  sys.dm_db_missing_index_details  Demo 索引碎片  索引碎片  重建索引目的  减小索引碎片率  更新统计信息  清理执行计划缓存,获取更优的执行计划  查询索引碎片  sys.indexes  sys.dm_db_index_physical_stats  注意  Database Mirroring / Log Shipping / AlwaysOn  大量的 I/O (IOPS)资源消耗  可能会导致Blocking / Deadlock / Tempdb压力增大  因此  必须基于100%的需要重建索引  基于索引级别的碎片检查和重整  <10% Ignore;10 ~ 30% Reorganize ;>=30% Rebuild  业务低峰期维护索引碎片  Re-index partition by partition  Demo 数据类型转化  数据类型转换  是什么  转换原则:低优先级往高优先级转换  危害:使用Index Scan而不是Index Seek  如何避免  数据库设计阶段,确保分布在不同表中相同字段数据类型一致  确保传入参数数据类型和基表保持一致  观察执行计划:CONVERT_IMPLICIT  执行计划缓存中发现  Demo Non-SARG 查询  Non-SARG查询  在WHERE / ON 语句中对基表字段使用函数  常见的函数  Convert/ Cast/ Data Type Conversion  Datediff/ Dateadd/ Year / Month  Upper/Lower / Rtrim/ Substring/ Left / Like‘%XXX%’/ Isnull  UDF (User Define Functions)  Demo 统计信息  统计信息  是什么  统计信息为查询优化器执行计划评估过程中提供数据列密度分布信息  更新统计信息  update statistics XXX  sys.sp_updatestats  stats_date  Demo 参数嗅探  参数嗅探  表现形式  查询语句执行时快时慢  查询第一次执行很快,突然变慢了  相同或者相似的查询,走不通的执行计划  查询语句不同的传入参数,性能天壤之别  产生原因  解决方案  清理缓存(不推荐):Reboot OS / SQL Service / DBCC FREEPROCCACHE  DBCC Clean特定查询或者存储过程执行计划缓存  使用WITH RECOMPILE Query Hits  更新统计信息  创建缺失索引 TOP SQL  TOP SQL  TOP CPU SQL  TOP total CPU usage SQL  TOP CPU usage per run SQL  TOP Reads SQL  TOP total reads SQL  TOP reads per run SQL  TOP Writes SQL  TOP total writes SQL  TOP writes per run SQL  TOP Duration SQL  TOP total duration usage SQL  TOP duration per run SQL
还剩10页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

五嘎子

贡献于2017-11-06

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf