当前位置:文档之家› 数据库性能调优技巧.

数据库性能调优技巧.


收集的主要信息
跟踪硬件指标 跟踪SQL的执行状况
分析跟踪的结果
2010年4月6日 9
新点软件2010年内部培训资料
1、系统监视器
对象 Processor Memory PhysicalDisk Object
2010年4月6日
计数器 %Processor Timer Available Bytes Avg. Disk Sec/Read (write)
用一定的物理空间
对建有索引的表中的数据记录进行增加、删除、修改操作 时,数据库要对索引进行重新调整,需要消耗资源,引起 性能下降 一般而言,每张表的索引不要超过5个。 在优点和缺点之间取得一个均衡
2010年4月6日
20
新点软件2010年内部培训资料
3、不需要建索引的场合
重复值较多的列 性别字段:男、女 是否启用:0、1 数据量很小的表 总共几十上百条记录的数据字典表 特殊类型的字段 很长的文本字段,一般不建。如:邮件内容。特殊情 况下,才会牺牲资源去建索引,如我们需要根据产品
新点软件2010年内部培训资料
数 据 库 性 能 调 优 技 巧
李 强
2010年4月6日
1
新点软件2010年内部培训资料


1 2 3
优化的基本思想
数据收集和分析
调优基础知识 调优方法和工具
4
新点软件2010年内部培训资料
一、性能优化的基本思想
性能优化的衡量标准(基线) 影响性能的因素 性能优化的一般流程
2010年4月6日 14
新点软件2010年内部培训资料
Demo2:事件探查器
•模板的选择 •跟踪文件 •筛选器 •关联系统性能日志数据
2010年4月6日
15
新点软件2010年内部培训资料
4、故障原因分析顺序
服务器
数据库
单个 对象
2010年4月6日
16
新点软件2010年内部培训资料


1 2 3
2、影响性能的因素
我们能够调整的因素
硬件
操作系统及竞争的应用 数据库设计 应用程序 应用程序
数据库设计 OS/竞争系统
硬件
我们必须接受的因素
数据库不断的长大
业务逻辑越来越复杂 用户不断的增加
2010年4月6日
5
新点软件2010年内部培和经验
2010年4月6日
3
新点软件2010年内部培训资料
1、性能优化的基线
衡量 指标
响应时间(请求作出响应)
并发用户数(同时在线、并发请求 10:1)
吞吐量(处理请求数/单位时间)
优化 基线
优化 目标
满足业务系统运行的需要 良好的用户体验
2010年4月6日
4
新点软件2010年内部培训资料
7
新点软件2010年内部培训资料


1 2 3
优化的基本思想
数据收集和分析
调优基础知识 调优方法和工具
4
新点软件2010年内部培训资料
二、数据收集分析
使用的主要工具
性能监视器(Performancer) 查询分析器(SQL Server Management Studio) 事件探查器(SQL Server Profiler)
优化的基本思想
数据收集和分析
调优基础知识 调优方法和工具
4
新点软件2010年内部培训资料
(一)索引
2010年4月6日
18
新点软件2010年内部培训资料
1、索引概念
索引:汉语字典和数据库共同的编排数据的内部方法
2010年4月6日
19
新点软件2010年内部培训资料
2、使用索引需要付出代价
索引是数据库中实际存在的对象,所以,每个索引都会占
“冷运行”、“热运行”的差别。 这是最常用、最重要的数据收集工具
2010年4月6日 13
新点软件2010年内部培训资料
使用经验
选择模板: Tuning;事件选择、列筛选
常用列:TextData、Duration、StartTime等 筛选条件:一般脚本,如果Duration>100,性能值得优化
2010年4月6日
12
新点软件2010年内部培训资料
3、事件探查器(Profiler)
一般用法
基于某个可用的模板创建一个跟踪
存储跟踪的结果在表或文件中,用于随后的分析 必要时开始、停止、暂停和修改跟踪
备注
对于同一个测试脚本,重复运行的话,后面的速度会明显提高,
但只是缓存而已,不代表这个脚本的执行效率就是高的。这就是
推荐值 <75% >4M <20;超过50瓶颈
10
新点软件2010年内部培训资料
2、SQL查询分析器
执行计划查看
2010年4月6日
11
新点软件2010年内部培训资料
Demo1:查询执行计划
查询分析其中常用的脚本
DECLARE @start_time DATETIME SELECT @start_time=GETDATE() --具体的SQL脚本 SELECT '执行时间 ,ms'=DATEDIFF(millisecond,@start_time,GETDATE())
2010年4月6日 22
新点软件2010年内部培训资料
5、聚集索引和非聚集索引
2010年4月6日
23
新点软件2010年内部培训资料
聚集索引
唯一性:聚集索引键必须是唯一的,如果不唯一,系统会自 动为每个重复值加上4字节的Guid 窄数据:如果字段长度太大,就不适合当聚集索引 静态数据:因为对键进行更改的成本很高,如果聚集键同时 也是主键,则这个改动需要级联到非聚集索引以及外键上 一般建法:
规格描述(几百字到上千字)快速查找产品。
2010年4月6日 21
新点软件2010年内部培训资料
4、需要建索引的场合
按范围查询的列,要建索引
Between、>、< ,> =,< =和order by、 group by发生的列 如:按日期查询邮件,ReceiveDate 字段
表中若有主键或者外键,要建索引 Where语句后面的条件,可以通过组合方 式建索引提高性能。
实施
分析
设计
2010年4月6日
6
新点软件2010年内部培训资料
4、一些感悟和经验
事物是变化的,我们也需要随机应变,不能墨守成 规,没有到处适用的标准答案。往往开始很美好的
解决方案,到后来不一定是。
有些东西眼睛是看不到的,看到的不一定是真实的, 所以要凭借数据来说明问题,而不是感觉。
2010年4月6日
相关主题