书籍详情
SQL Server 2005性能调优
作者:(美)沃特,波尔顿 等著,齐宁,董泽惠 译
出版社:清华大学出版社
出版时间:2009-05-01
ISBN:9787302200871
定价:¥68.00
购买这本书可以去
内容简介
《SQL Server 2005性能调优》为所有咨询师、开发人员、数据库管理员以及任何必须第一次处理SQLServer性能问题的人提供了全面的资源。还适用于那些已经处理过SQLServer性能问题,但需要对如何进行性能调校进行新的审视的人。《SQL Server 2005性能调优》向读者展示了如何找到性能问题,而不是假定读者已经知道问题在哪里。与其他同类书籍不同,《SQL Server 2005性能调优》更多地把重点放在对性能问题的诊断上。首先,当发生问题时如何寻找瓶颈,然后讨论如何识别并解决制约性能的问题。亚马逊5星级图书,自英文版出版以来,一直受到广大读者的推崇,是一本非常优秀的、内容全面的SQLServer2005性能调优指南。
作者简介
StevenWort有14年使用SQLServet的经验。他目前是Microsoft公司Windows小组的开发人员,负责解决大型数据库系统的性能和扩展性问题。Steven在Microsoft工作了7年,两年前加入Windows组。在此之前,Steven在SQLServer小组工作了两年,负责研究性能和可扩展性。他在Microsoft的第一份工作是在SIE小组作为资深专家,为期3年,研究方向是CSS。在这段时间里,Steven环游了世界,解决Microsoft客户的性能和可扩展性问题。在来到Microsoft之前,Steven作为数据库应用开发的自由顾问专家在英国工作了20年。
目录
第Ⅰ部分 在问题发生时寻找瓶颈
第1章 性能调校
1.1 艺术还是科学
1.2 性能调校的科学
1.2.1 问题陈述
1.2.2 处理计划
1.2.3 数据收集
1.2.4 数据分析
1.3 应用性能调校
1.3.1 实例1:应用的速度慢
1.3.2 实例2:存储过程x的速度慢
1.3.3 工具
1.3.4 预防措施
1.4 小结
第2章 使用SystemMonitor监视服务器资源
2.1 为什么可能会需要SystemMonitor
2.2 何时应当使用SystemMonitor
2.3 PerformanceMonitor概述
2.4 开始使用SystemMonitor
2.5 运行SystemMonitor的影响是什么
2.5.1 对监视的影响进行管理
2.5.2 在恰当的时间,以恰当的持续时间进行捕获
2.6 SystemMonitor将生成多少数据
2.7 资源利用
2.8 识别瓶颈
2.8.1 定位内存瓶颈
2.8.2 发现磁盘瓶颈
2.8.3 识别CPU瓶颈
2.9 主动使用systemMonitor
2.10 在64位系统上运行SystemMOnitOr
2.11 合并SystemMonitor日志和SOLProfiler跟踪
2.12 监视远程服务器
2.13 SystemMonitor的最佳实践
2.13.1 获得一个基线
2.13.2 保留性能日志
2.13.3 模式和趋势
2.13.4 经受糟糕性能的服务器
2.13.5 调校性能
2.13.6 采取主动
2.14 SystemMonitor计数器不见应当怎么办
2.15 内置日志管理工具
2.15.1 LogMan
2.15.2 Relog
2.16 分析日志数据
2.16.1 LogParser
2.16.2 PerformanceAnalysisofLogs
2.17 小结
第3章 使用SystemMonitor监视SQLServer资源
3.1 开始
3.2 性能问题的类型
3.2.1 基于配置的性能问题
3.2.2 基于模式的性能问题
3.3 瓶颈的类型
3.4 内存瓶颈
3.4.1 内存瓶颈的类型
3.4.2 确认内存瓶颈
3.4.3 基于配置的内存瓶颈
3.4.4 基于模式的内存瓶颈
3.5 CPU瓶颈
3.5.1 确认CPU瓶颈
3.5.2 基于配置的CPU瓶颈
3.5.3 基于模式的CPU瓶颈
3.6 磁盘瓶颈
3.6.1 确认磁盘瓶颈
3.6.2 基于配置的磁盘瓶颈
3.6.3 基于模式的磁盘瓶颈
3.7 监视数据库镜像性能
3.8 监视WlaitStatistics
3.9 典型性能问题
3.9.1 典型磁盘问题
3.9.2 内存
3.9.3 典型CPU问题
3.10 使用SQLServer来分析性能日志
3.11 联合PerformanceMonitor日志和SQLProfiler跟踪
3.12 小结
第4章 SQLServer等待类型
4.1 SOLServer等待
4.2 体系结构
4.3 常见的或值得注意的资源等待类型
4.4 如何追踪等待
4.4.1 sys.dinexecrequests:只提供会话级信息
4.4.2 sys.dm—Os.waiting.一tasks:所有等待任务
4.4.3 sys.dm—Os.wait—stats:根据等待类型聚集时间
4.4.4 DMVStats
4.4.5 PetforrnanceDashboard
4.4.6 等待统计实战
4.5 加锁与阻塞
4.5.1 并发性
4.5.2 事务
4.5.3 隔离级别
4.5.4 锁和加锁
4.5.5 数据行版本控制
4.5.6 对死锁进行监视
4.5.7 对阻塞锁进行监视
4.6 小结
第5章 使用SQLProfer寻找问题查询
5.1 设置跟踪的准备工作
5.1.1 检测“问题”陈述是否完备
5.1.2 寻找相关已知问题
5.1.3 以SQLTrace的术语进行思考
5.1.4 SQLTrace选项及思考
5.2 捕获阻塞事件
5.3 捕获SllowlDlanxML数据
5.4 捕获死锁图
5.5 使用SOLProfiler识别长时间运行的查询
5.5.1 模拟一个场景及示例数据库
5.5.2 分析问题
5.5.3 设置
5.5.4 进行跟踪
5.5.5 分析和调校
5.5.6 案例总结
5.6 使用Profiler生成服务器端跟踪代码跟踪高成本查询
5.6.1 使用Profiler生成服务器端跟踪脚本
5.6.2 执行服务器端脚本
5.6.3 管理跟踪文件并分析跟踪数据
5.6.4 服务器端跟踪代码演示
5.6.5 案例总结
5.7 将ProfilerTrace同SvstemMonitor性能计数器数据关联起来
5.8 小结
第Ⅱ部分 通过调校去除瓶颈
第6章 选择和配置硬件
6.1 服务器瓶颈
6.1.1 内存
6.1.2 I/O
6.1 13CPU
6.2 配置服务器
6.2.1 内存
6.2.2 I/O
6.2.3 CPU
6.3 小结
第7章 调校SQLServer配置
7.1 调整服务器级设置之前的考虑
7.2 检查当前SQLServer设置
7.2.1 使用SQLServerManagemeStudio检查服务器设置
7.2.2 使用脚本检查服务器设置
7.2.3 检查AdvancedSettings并修改它们的值
7.3 重要的服务器设置:CPu、内存和I/O
7.3.1 CPU
7.3.2 内存
7.3.3 网络I/O
7.4 小结
第8章 调校模式
8.1 数据质量
8.1.1 规范化
8.1.2 反规范化
8.1.3 定义列
8.1.4 存储过程
8.1.5 触发器
8.2 数据性能
8.2.1 页
8.2.2 分区
8.2.3 并发性与加锁(以及阻塞)
8.2.4 锁
8.2.5 索引
8.3 小结
第9章 调校T-SQL
9.1 开局:优化器的策略
9.1.1 基于成本的优化
9.1.2 读取索引统计
9.1.3 IncludeActualExecutionPlan的误解
9.1.4 使用sp.helpindex来检查索引
9.2 中局:收集事实
9.2.1 查询计划
9.2.2 查询计划的实质
9.2.3 从计划高速缓存中检索查询计划
9.2.4 缓冲池
9.3 终局:对T-SQL进行性能调校
9.3.1 主要工具
9.3.2 实例的必备索引
9.4 使用新的方法来调校T-SQL
9.4.1 NOTIN和NOTEXISTS重写已经成为过去
9.4.2 通过将谓词在计划中推进到更深的位置进行重写
9.4.3 为中间结果使用临时表
9.4.4 SELECT语句中的用户定义函数
9.4.5 改造SELECT
9.5 调校T-SOL谓词
9.5.1 去除特定隐式转换
9.5.2 使用可搜索参数
9.6 使用索引调校T-SOL
9.6.1 最小化书签查找
9.6.2 对结果进行排序
9.6.3 处理编入索引的可空列
9.6.4 消除重复
9.7 调校T-sQL常见模式或惯用语
9.7.1 单元素SELECT语句
9.7.2 聚集和CTE
9.7.3 派生表和相关子查询
9.7.4 分页和排序
9.8 使用提示调校T-SQL语句
9.9 调校死锁和阻塞
9.9.1 阻塞
9.9.2 死锁
9.9.3 预防措施
9.10 对查询计划进化进行模拟压力测试
9.11 小结
第Ⅲ部分 使用工具来采取主动措施并建立性能基线
第Ⅳ部分 服务器性能的路线图
第1章 性能调校
1.1 艺术还是科学
1.2 性能调校的科学
1.2.1 问题陈述
1.2.2 处理计划
1.2.3 数据收集
1.2.4 数据分析
1.3 应用性能调校
1.3.1 实例1:应用的速度慢
1.3.2 实例2:存储过程x的速度慢
1.3.3 工具
1.3.4 预防措施
1.4 小结
第2章 使用SystemMonitor监视服务器资源
2.1 为什么可能会需要SystemMonitor
2.2 何时应当使用SystemMonitor
2.3 PerformanceMonitor概述
2.4 开始使用SystemMonitor
2.5 运行SystemMonitor的影响是什么
2.5.1 对监视的影响进行管理
2.5.2 在恰当的时间,以恰当的持续时间进行捕获
2.6 SystemMonitor将生成多少数据
2.7 资源利用
2.8 识别瓶颈
2.8.1 定位内存瓶颈
2.8.2 发现磁盘瓶颈
2.8.3 识别CPU瓶颈
2.9 主动使用systemMonitor
2.10 在64位系统上运行SystemMOnitOr
2.11 合并SystemMonitor日志和SOLProfiler跟踪
2.12 监视远程服务器
2.13 SystemMonitor的最佳实践
2.13.1 获得一个基线
2.13.2 保留性能日志
2.13.3 模式和趋势
2.13.4 经受糟糕性能的服务器
2.13.5 调校性能
2.13.6 采取主动
2.14 SystemMonitor计数器不见应当怎么办
2.15 内置日志管理工具
2.15.1 LogMan
2.15.2 Relog
2.16 分析日志数据
2.16.1 LogParser
2.16.2 PerformanceAnalysisofLogs
2.17 小结
第3章 使用SystemMonitor监视SQLServer资源
3.1 开始
3.2 性能问题的类型
3.2.1 基于配置的性能问题
3.2.2 基于模式的性能问题
3.3 瓶颈的类型
3.4 内存瓶颈
3.4.1 内存瓶颈的类型
3.4.2 确认内存瓶颈
3.4.3 基于配置的内存瓶颈
3.4.4 基于模式的内存瓶颈
3.5 CPU瓶颈
3.5.1 确认CPU瓶颈
3.5.2 基于配置的CPU瓶颈
3.5.3 基于模式的CPU瓶颈
3.6 磁盘瓶颈
3.6.1 确认磁盘瓶颈
3.6.2 基于配置的磁盘瓶颈
3.6.3 基于模式的磁盘瓶颈
3.7 监视数据库镜像性能
3.8 监视WlaitStatistics
3.9 典型性能问题
3.9.1 典型磁盘问题
3.9.2 内存
3.9.3 典型CPU问题
3.10 使用SQLServer来分析性能日志
3.11 联合PerformanceMonitor日志和SQLProfiler跟踪
3.12 小结
第4章 SQLServer等待类型
4.1 SOLServer等待
4.2 体系结构
4.3 常见的或值得注意的资源等待类型
4.4 如何追踪等待
4.4.1 sys.dinexecrequests:只提供会话级信息
4.4.2 sys.dm—Os.waiting.一tasks:所有等待任务
4.4.3 sys.dm—Os.wait—stats:根据等待类型聚集时间
4.4.4 DMVStats
4.4.5 PetforrnanceDashboard
4.4.6 等待统计实战
4.5 加锁与阻塞
4.5.1 并发性
4.5.2 事务
4.5.3 隔离级别
4.5.4 锁和加锁
4.5.5 数据行版本控制
4.5.6 对死锁进行监视
4.5.7 对阻塞锁进行监视
4.6 小结
第5章 使用SQLProfer寻找问题查询
5.1 设置跟踪的准备工作
5.1.1 检测“问题”陈述是否完备
5.1.2 寻找相关已知问题
5.1.3 以SQLTrace的术语进行思考
5.1.4 SQLTrace选项及思考
5.2 捕获阻塞事件
5.3 捕获SllowlDlanxML数据
5.4 捕获死锁图
5.5 使用SOLProfiler识别长时间运行的查询
5.5.1 模拟一个场景及示例数据库
5.5.2 分析问题
5.5.3 设置
5.5.4 进行跟踪
5.5.5 分析和调校
5.5.6 案例总结
5.6 使用Profiler生成服务器端跟踪代码跟踪高成本查询
5.6.1 使用Profiler生成服务器端跟踪脚本
5.6.2 执行服务器端脚本
5.6.3 管理跟踪文件并分析跟踪数据
5.6.4 服务器端跟踪代码演示
5.6.5 案例总结
5.7 将ProfilerTrace同SvstemMonitor性能计数器数据关联起来
5.8 小结
第Ⅱ部分 通过调校去除瓶颈
第6章 选择和配置硬件
6.1 服务器瓶颈
6.1.1 内存
6.1.2 I/O
6.1 13CPU
6.2 配置服务器
6.2.1 内存
6.2.2 I/O
6.2.3 CPU
6.3 小结
第7章 调校SQLServer配置
7.1 调整服务器级设置之前的考虑
7.2 检查当前SQLServer设置
7.2.1 使用SQLServerManagemeStudio检查服务器设置
7.2.2 使用脚本检查服务器设置
7.2.3 检查AdvancedSettings并修改它们的值
7.3 重要的服务器设置:CPu、内存和I/O
7.3.1 CPU
7.3.2 内存
7.3.3 网络I/O
7.4 小结
第8章 调校模式
8.1 数据质量
8.1.1 规范化
8.1.2 反规范化
8.1.3 定义列
8.1.4 存储过程
8.1.5 触发器
8.2 数据性能
8.2.1 页
8.2.2 分区
8.2.3 并发性与加锁(以及阻塞)
8.2.4 锁
8.2.5 索引
8.3 小结
第9章 调校T-SQL
9.1 开局:优化器的策略
9.1.1 基于成本的优化
9.1.2 读取索引统计
9.1.3 IncludeActualExecutionPlan的误解
9.1.4 使用sp.helpindex来检查索引
9.2 中局:收集事实
9.2.1 查询计划
9.2.2 查询计划的实质
9.2.3 从计划高速缓存中检索查询计划
9.2.4 缓冲池
9.3 终局:对T-SQL进行性能调校
9.3.1 主要工具
9.3.2 实例的必备索引
9.4 使用新的方法来调校T-SQL
9.4.1 NOTIN和NOTEXISTS重写已经成为过去
9.4.2 通过将谓词在计划中推进到更深的位置进行重写
9.4.3 为中间结果使用临时表
9.4.4 SELECT语句中的用户定义函数
9.4.5 改造SELECT
9.5 调校T-SOL谓词
9.5.1 去除特定隐式转换
9.5.2 使用可搜索参数
9.6 使用索引调校T-SOL
9.6.1 最小化书签查找
9.6.2 对结果进行排序
9.6.3 处理编入索引的可空列
9.6.4 消除重复
9.7 调校T-sQL常见模式或惯用语
9.7.1 单元素SELECT语句
9.7.2 聚集和CTE
9.7.3 派生表和相关子查询
9.7.4 分页和排序
9.8 使用提示调校T-SQL语句
9.9 调校死锁和阻塞
9.9.1 阻塞
9.9.2 死锁
9.9.3 预防措施
9.10 对查询计划进化进行模拟压力测试
9.11 小结
第Ⅲ部分 使用工具来采取主动措施并建立性能基线
第Ⅳ部分 服务器性能的路线图
猜您喜欢