25
1 © Copyright 2007 EMC Corporation. All rights reserved. Performance Tuning for SQL Server 2005 Solutions Ryan Chen [email protected] Solution Architect – Microsoft EMC Global Service – MS Practice

Performance Tuning for SQL Server 2005 Solutions

Embed Size (px)

DESCRIPTION

Performance Tuning for SQL Server 2005 Solutions. Ryan Chen [email protected] Solution Architect – Microsoft EMC Global Service – MS Practice. 议程. 关于 EMC 微软实践部门 SQL Server 2005 的架构 性能调优的方法学 如何对基于 SQL Server 2005 的 OLTP 系统进行调优 如何对基于 SQL Server 2005 的 OLAP 系统进行调优 - PowerPoint PPT Presentation

Citation preview

Page 1: Performance Tuning for SQL Server 2005 Solutions

1© Copyright 2007 EMC Corporation. All rights reserved.

Performance Tuning for SQL Server 2005 Solutions

Ryan Chen

[email protected]

Solution Architect – Microsoft

EMC Global Service – MS Practice

Page 2: Performance Tuning for SQL Server 2005 Solutions

2

议程

关于 EMC微软实践部门 SQL Server 2005的架构 性能调优的方法学 如何对基于 SQL Server 2005 的 OLTP系统进行调优 如何对基于 SQL Server 2005 的 OLAP系统进行调优 如何对基于 SQL Server 2005 的 ETL解决方案进行调优

Page 3: Performance Tuning for SQL Server 2005 Solutions

3

关于 EMC微软实践部门

EMC MS Practice EMC微软实践部门 EMC MSP针对 SQL Server的服务 EMC MSP针对其他微软产品的服务

Page 4: Performance Tuning for SQL Server 2005 Solutions

4

EMC MS Practice EMC微软实践部门

在北美市场占据主导地位 全面进入亚太及中东市场 提供经验丰富的领域专家 服务各种规模的行业客户

EMC 微软实践提供业务驱动的 IT 咨询服务,整合Microsoft 及相关技术。

微软全球 5 大服务提供商之一

TAP 及早期部署

影响

PAC8合作伙伴咨询委员会成员

• 先进的基础架构• 业务流程及整合• 数据管理 (BI) – 未决• 微软商务解决方案 (CRM)• 信息工作者• 定制开发• 安全• 独立软件供应商 / 软件

权威经验

R2

认证

Operations Manager 2007Operations Manager 2007

Page 5: Performance Tuning for SQL Server 2005 Solutions

5

EMC MSP针对 SQL Server的服务

SQL Server平台的设计及迁移规划及实施 SQL Server数据应用架构规划及建议 SQL Server高可用及数据保护方案规划及设计 SQL Server性能故障分析及排除 SQL Server平台商务智能解决方案的规划及实施

Page 6: Performance Tuning for SQL Server 2005 Solutions

6

EMC MSP针对其他微软产品的服务

Notes 到 Exchange的迁移 Exchange的升级规划及实施 Exchange的容灾及备份规划及实施 SharePoint的应用设计及开发 桌面及服务器的部署规划及实施 安全架构的规划及实施 .Net应用的设计与开发 ……

更多关于 EMC MSP的问题可以访问 http://www.emc.com/msp或直接联系 [email protected]

Page 7: Performance Tuning for SQL Server 2005 Solutions

7

SQL Server 2005的架构

Page 8: Performance Tuning for SQL Server 2005 Solutions

8

性能调优的方法学

数据架构索引表

查询代码存储过程视图

存储设计

文件组分区

硬件配置

内存处理器亲和度

调优顺序

最困难但最有成效

最简单但是收效最少

Page 9: Performance Tuning for SQL Server 2005 Solutions

9

如何对基于 SQL Server 2005 的 OLTP系统进行调优

OLTP系统的特点 常见的性能问题 如何设计良好的关系型数据库架构 如何编写良好的 T-SQL代码 如何优化 SQL Server的配置

Page 10: Performance Tuning for SQL Server 2005 Solutions

10

OLTP系统的特点

事务处理逻辑比较简单 单个事务要求响应速度快 并发更新事务多

Page 11: Performance Tuning for SQL Server 2005 Solutions

11

常见的性能问题

磁盘负载过重

内存负载过重

处理器负载过重

网络负载过重

架构不良

代码不良

代码不良

客户端代码不良

调整架构

调整代码

调整存储

调整客户端设计

常规情况下

Page 12: Performance Tuning for SQL Server 2005 Solutions

12

如何设计良好的关系型数据库架构

对数据热区的判断– 根据数据热区定义索引、表分割定义

优化 SELECT查询– 尽量将数据存储在同一张表中– 使用索引及索引覆盖策略

优化 UPDATE事务– 尽量将需要更新的数据放在一张较小的表中

优化 DELETE事务– 在大规模删除中评估分区的效果

优化 INSERT事务– 减少对自动编号的依赖

Page 13: Performance Tuning for SQL Server 2005 Solutions

13

如何编写良好的 T-SQL代码

尽量使用基于 Set的逻辑,减少使用基于 Row的逻辑 减少游标的使用 对于小数据集使用表变量而不是临时表 对于需要反复使用的大数据集使用临时表而不是表变量 尽量使用WHERE替代 HAVING

Page 14: Performance Tuning for SQL Server 2005 Solutions

14

如何优化 SQL Server的配置

对于中高端服务器– 在 Boot.ini文件中启用 /3gb参数以及 /pae参数– 在 SQL Server配置中启用 AWE– 在 SQL Server中配置 CPU Affinity以及 Parallel Cost Threshold

对于所有服务器– 配置 tempdb

Page 15: Performance Tuning for SQL Server 2005 Solutions

15

如何对基于 SQL Server 2005 的 OLAP系统进行调优

优化 Dimension的设计 优化Measure Group的设计 优化MDX语句 优化 SQL Server Analysis Service的配置

Page 16: Performance Tuning for SQL Server 2005 Solutions

16

优化 Dimension的设计

利用 Attribute Hierarchy减少 Dimension的数量 禁用不需要的 Attribute 禁用不常用的 Attribute聚合及 Attribute Hierarchy 设置合理的 Attribute Relationship

Page 17: Performance Tuning for SQL Server 2005 Solutions

17

优化Measure Group的设计

对于简单的可计算度量使用 Calculated Member 尽量避免Measure Expression 使用 Cube分区

Page 18: Performance Tuning for SQL Server 2005 Solutions

18

优化MDX语句

限制 Calculation的计算范围 移除空的元组 需要自定义返回值格式时,使用 Format String属性来替代使用条件逻辑

当需要 Cross Join的时候,将较小的 Set放在表达式的右侧 需要比较的时候,尽量使用 IS运算符而不是 =

Page 19: Performance Tuning for SQL Server 2005 Solutions

19

优化 Analysis Service Solution的配置

设置 Process时候的 Temp Dir 在生产环境关闭 Flight Log 选用 Native Provider读取数据源 选用 Aggregation Designer设计聚合方案 生产环境中使用 Usage Based Aggregation Design优化聚合方案

Page 20: Performance Tuning for SQL Server 2005 Solutions

20

如何对基于 SQL Server 2005 的 ETL解决方案进行调优

理解 SSIS两种引擎的差异 Pipeline的工作机制 SSIS的执行计划 执行计划对性能的影响

Page 21: Performance Tuning for SQL Server 2005 Solutions

21

理解 SSIS两种引擎的差异

Run time引擎– 依赖于外部资源– 例如:网络带宽 (FTP task),应用服务器的性能 (Mail task 、 Execute

SQL task)

Data flow引擎– 同样依赖于外部资源 (当需要访问数据源和数据目的的时候 )– 同时依赖于内部资源 (执行数据转换操作的时候 )– 基于内存管道 pipeline缓存管理机制

Page 22: Performance Tuning for SQL Server 2005 Solutions

22

Pipeline的工作机制

操作分类 转换操作 范例 缓存 线程

按行转换 同步派生列、数据转换、多播、查找列

重复利用缓存中的数据

不启用新的线程

部分按块处理 异步 合并、联合 需要将数据复制到新的区域

可能生成新的线程

完全按块处理 异步 聚合、排序 需要将数据复制到新的区域 生成新的线程

Page 23: Performance Tuning for SQL Server 2005 Solutions

23

SSIS的执行计划

Page 24: Performance Tuning for SQL Server 2005 Solutions

24

执行计划对性能的影响

Page 25: Performance Tuning for SQL Server 2005 Solutions

25

SSIS性能调优的建议

减少读入数据缓存的数据行尺寸 最大化线程并行度

– 使用条件性拆分处理聚合运算 最大化缓存的利用率

– 利用已排序的数据源定义来避免排序转换