前言本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题。这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架。 下面一些问题是在近千家数据库用户诊断时发现的常规问题,本文分为【常见问题诊断流程】-【常见问题】-【常见问题快速解决的建议】 常见问题诊断流程概览模块—[汇总]了解系统
语句执行时间:横坐标为时间范围,纵坐标为在执行时间在范围内分布的语句数量。 (本例:收集时间内语句执行时间在3-5秒的语句数量有1103条,5-10秒,10-20秒慢语句数量很多,说明系统语句执行缓慢,系统存在性能问题)
会话-等待类型:横坐标为等待类型,纵坐标为等待数量。 (本例:系统中发生大量的等待,说明系统存在性能问题)
通过3个主要计数器诊断系统是否存在瓶颈和产生瓶颈的资源。
了解系统中每秒请求的语句数量和系统打开的连接数量,掌握系统压力量级。 (注:可多次收集分析,掌握系统压力波动和处理能力)
了解系统中的潜在风险与缺陷情况 (红色:严重程度高,建议问题全部解决)
[检查项]模块—[全部]发现系统问题
从系统、参数、会话、性能计数器、查询语句、作业、日志、执行计划、tempdb、业务数据库多方面呈现系统存在的问题与隐患。 (绿色:配置标准,蓝色:严重程度低,橙色:严重程度中等,红色:严重程度高,可能造成风险) 常见问题
性能问题
环境问题
备份问题
可用性问题
安全问题
结构设计问题
快速解决问题与常规建议快速解决性能问题配置系统参数查看不合理参数—点击操作按钮
在弹出页查看当前运行值,与建议值。
弹出优化配置脚本—如需修改复制文本—在服务器运行即可修改 添加缺失索引在【数据库】模块的【缺失索引】中,创建数据库的缺失索引。
注:并非所有提示的索引都需要创建,根据【平均影响百分比】【平均用户开销百分比】【用户查找次数】情况综合评价,建立系统中缺失的重要索引。并综合【相等列】【不等列】【包含列】创建包含多种情况的最优索引。 根据执行频率和开销分析重点语句在【查询语句】模块的【查询语句】-【汇总视图】中,通过【执行次数】或【cpu时间】【读次数】【写次数】【影响行数】等对重点语句,重点优化。
点击语句可以进入【分类视图】,语句的详细执行信息页
在【分类视图】页面,可以点击语句进入【关联项】查看每条语句执行的具体信息及执行计划,等待等信息。
环境问题的建议磁盘规划
操作系统与版本
备份问题的建议
可用性建议任何数据库为了保证业务的连续性和高可用性,以及数据的安全性,都必须采用高可用方案规避单点的风险。 数据库主流的高可用技术:Always On可用性组,SQL故障转移群集,日志传送技术,镜像技术,及moebius负载均衡集群 安全问题建议账号安全与权限管理通常的情况下,我们都是通过sa进行设置密码的,而且在config文件里面明文的写上我们的账号和密码,这样的设计存在很大的安全隐患,无论是受攻击还是误删除都会给系统带来严重的后果,建议对用户进行权限规划,账号划分等安全措施。 维护任务CHECKDB保证数据安全接触过上百家客户因为没有及时发现数据页损坏而导致的数据库不可用或数据丢失,建议每周运行及时发现数据库损坏。 结构设计的建议聚集索引与外键索引在表结构设计中建议表中都有聚集索引,外键添加索引,以提升性能。 隐式转换在数据库物理设计和程序调用设计时字段类型不匹配(程序传入的类型转换优先级高于数据库中字段类型,如表中varchar 而程序传入nvarchar)会发生隐式转换,隐式转换增加数据库性能消耗,还会使索引无法使用而导致严重的性能问题。 通过工具语句的【执行计划】中找到对应的隐式转换处,分析程序传入和数据库表设计综合解决。
|
|