Upload
kim-sparks
View
62
Download
0
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
1© Copyright 2007 EMC Corporation. All rights reserved.
Performance Tuning for SQL Server 2005 Solutions
Ryan Chen
Solution Architect – Microsoft
EMC Global Service – MS Practice
2
议程
关于 EMC微软实践部门 SQL Server 2005的架构 性能调优的方法学 如何对基于 SQL Server 2005 的 OLTP系统进行调优 如何对基于 SQL Server 2005 的 OLAP系统进行调优 如何对基于 SQL Server 2005 的 ETL解决方案进行调优
3
关于 EMC微软实践部门
EMC MS Practice EMC微软实践部门 EMC MSP针对 SQL Server的服务 EMC MSP针对其他微软产品的服务
4
EMC MS Practice EMC微软实践部门
在北美市场占据主导地位 全面进入亚太及中东市场 提供经验丰富的领域专家 服务各种规模的行业客户
EMC 微软实践提供业务驱动的 IT 咨询服务,整合Microsoft 及相关技术。
微软全球 5 大服务提供商之一
TAP 及早期部署
影响
PAC8合作伙伴咨询委员会成员
• 先进的基础架构• 业务流程及整合• 数据管理 (BI) – 未决• 微软商务解决方案 (CRM)• 信息工作者• 定制开发• 安全• 独立软件供应商 / 软件
权威经验
R2
认证
Operations Manager 2007Operations Manager 2007
5
EMC MSP针对 SQL Server的服务
SQL Server平台的设计及迁移规划及实施 SQL Server数据应用架构规划及建议 SQL Server高可用及数据保护方案规划及设计 SQL Server性能故障分析及排除 SQL Server平台商务智能解决方案的规划及实施
6
EMC MSP针对其他微软产品的服务
Notes 到 Exchange的迁移 Exchange的升级规划及实施 Exchange的容灾及备份规划及实施 SharePoint的应用设计及开发 桌面及服务器的部署规划及实施 安全架构的规划及实施 .Net应用的设计与开发 ……
更多关于 EMC MSP的问题可以访问 http://www.emc.com/msp或直接联系 [email protected]
7
SQL Server 2005的架构
8
性能调优的方法学
数据架构索引表
查询代码存储过程视图
存储设计
文件组分区
硬件配置
内存处理器亲和度
调优顺序
最困难但最有成效
最简单但是收效最少
9
如何对基于 SQL Server 2005 的 OLTP系统进行调优
OLTP系统的特点 常见的性能问题 如何设计良好的关系型数据库架构 如何编写良好的 T-SQL代码 如何优化 SQL Server的配置
10
OLTP系统的特点
事务处理逻辑比较简单 单个事务要求响应速度快 并发更新事务多
11
常见的性能问题
磁盘负载过重
内存负载过重
处理器负载过重
网络负载过重
架构不良
代码不良
代码不良
客户端代码不良
调整架构
调整代码
调整存储
调整客户端设计
常规情况下
12
如何设计良好的关系型数据库架构
对数据热区的判断– 根据数据热区定义索引、表分割定义
优化 SELECT查询– 尽量将数据存储在同一张表中– 使用索引及索引覆盖策略
优化 UPDATE事务– 尽量将需要更新的数据放在一张较小的表中
优化 DELETE事务– 在大规模删除中评估分区的效果
优化 INSERT事务– 减少对自动编号的依赖
13
如何编写良好的 T-SQL代码
尽量使用基于 Set的逻辑,减少使用基于 Row的逻辑 减少游标的使用 对于小数据集使用表变量而不是临时表 对于需要反复使用的大数据集使用临时表而不是表变量 尽量使用WHERE替代 HAVING
14
如何优化 SQL Server的配置
对于中高端服务器– 在 Boot.ini文件中启用 /3gb参数以及 /pae参数– 在 SQL Server配置中启用 AWE– 在 SQL Server中配置 CPU Affinity以及 Parallel Cost Threshold
对于所有服务器– 配置 tempdb
15
如何对基于 SQL Server 2005 的 OLAP系统进行调优
优化 Dimension的设计 优化Measure Group的设计 优化MDX语句 优化 SQL Server Analysis Service的配置
16
优化 Dimension的设计
利用 Attribute Hierarchy减少 Dimension的数量 禁用不需要的 Attribute 禁用不常用的 Attribute聚合及 Attribute Hierarchy 设置合理的 Attribute Relationship
17
优化Measure Group的设计
对于简单的可计算度量使用 Calculated Member 尽量避免Measure Expression 使用 Cube分区
18
优化MDX语句
限制 Calculation的计算范围 移除空的元组 需要自定义返回值格式时,使用 Format String属性来替代使用条件逻辑
当需要 Cross Join的时候,将较小的 Set放在表达式的右侧 需要比较的时候,尽量使用 IS运算符而不是 =
19
优化 Analysis Service Solution的配置
设置 Process时候的 Temp Dir 在生产环境关闭 Flight Log 选用 Native Provider读取数据源 选用 Aggregation Designer设计聚合方案 生产环境中使用 Usage Based Aggregation Design优化聚合方案
20
如何对基于 SQL Server 2005 的 ETL解决方案进行调优
理解 SSIS两种引擎的差异 Pipeline的工作机制 SSIS的执行计划 执行计划对性能的影响
21
理解 SSIS两种引擎的差异
Run time引擎– 依赖于外部资源– 例如:网络带宽 (FTP task),应用服务器的性能 (Mail task 、 Execute
SQL task)
Data flow引擎– 同样依赖于外部资源 (当需要访问数据源和数据目的的时候 )– 同时依赖于内部资源 (执行数据转换操作的时候 )– 基于内存管道 pipeline缓存管理机制
22
Pipeline的工作机制
操作分类 转换操作 范例 缓存 线程
按行转换 同步派生列、数据转换、多播、查找列
重复利用缓存中的数据
不启用新的线程
部分按块处理 异步 合并、联合 需要将数据复制到新的区域
可能生成新的线程
完全按块处理 异步 聚合、排序 需要将数据复制到新的区域 生成新的线程
23
SSIS的执行计划
24
执行计划对性能的影响
25
SSIS性能调优的建议
减少读入数据缓存的数据行尺寸 最大化线程并行度
– 使用条件性拆分处理聚合运算 最大化缓存的利用率
– 利用已排序的数据源定义来避免排序转换