SQL Server性能调优实战

SQL Server性能调优实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2015-10
版次: 16
ISBN: 9787111517023
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 298页
41人买过
  •   本书是一线DBA技术专家呕心沥血之作,积作者多年的经验结晶和实践,也是目前市场上为数不多通过存储原理来讲解性能优化、剖析SQL Server架构以帮助读者快速高效调优数据库的图书。  书中首先简要介绍了SQL Server与性能实践相关的一些基础语法及配置信息,提出与数据库性能相关的几个概要信息,再对SQL Server数据的内部实现原理进行讲解,告诉读者如何调整和优化SQL Server数据库实例的配置,接着通过SQL Server数据库存储引擎的语句优化、执行计划内部原理以及索引等综合因素分析如何优化数据库语句,保证数据库的稳定性及效率,最后是从SQL Server的数据库性能监控及高可用性解决方案出发,提出性能监控及设计层面的优化。   陈畅亮,程序员出身,经过几年的软件开发之后转职为DBA,热衷于技术分享。多年来活跃于博客园,是微软SQL Server方向最有价值的专家(MVP),受邀以演讲嘉宾身份参加了2015年DTCC(中国数据库技术大会)。对SQL Server的设计与优化有深刻认识,实战经验丰富,同时撰写了大量关于SQL Server的技术文章。研究方向为SQL Server、MySQL、NoSQL,以及分布式环境下海量数据存储的设计与开发。
      吴一晴,2007年毕业于厦门集美大学诚毅学院,同年就职于厦门某物流软件科技公司,担任架构师职位,主要从事C#开发及.net框架维护。2010至2014年就职于厦门某电子商务技术公司。2015年就职于国内某家装互联网O2O企业,担任数据库管理员职位,主要从事Linux、MySQL、MongoDB以及PostgreSQL等开源项目的管理和架构规划及运维工作。 序1
    序2
    第1章 安装、配置SQL Server 1
    1.1 SQL Server概述 1
    1.1.1 简介 1
    1.1.2 发展历史 1
    1.2 SQL Server安装 2
    1.2.1 硬件准备与性能 2
    1.2.2 操作系统的选择 3
    1.3 SQL Server配置 4
    1.3.1 配置管理器 4
    1.3.2 数据库实例配置 5
    1.4 小结 6
    第2章 影响SQL Server性能的因素 7
    2.1 服务器硬件 8
    2.1.1 内存 8
    2.1.2 CPU 8
    2.1.3 磁盘I/O 9
    2.1.4 网络带宽 9
    2.2 SQL Server版本对性能的限制 10
    2.3 SQL Server系统的配置 10
    2.3.1 内存配置 10
    2.3.2 CPU配置 11
    2.3.3 I/O及数据文件配置 11
    2.4 数据库结构的设计 12
    2.4.1 好的性能出自好的设计 12
    2.4.2 约束对性能的影响 12
    2.4.3 适当的冗余 13
    2.5 T-SQL语句的编写 13
    2.5.1 编写T-SQL语句的注意事项及小窍门 13
    2.5.2 使用简单SQL语句 14
    2.6 小结 14
    第3章 T-SQL与性能调优 15
    3.1 编写健壮的T-SQL语句 15
    3.2 使用查询语句 17
    3.2.1 SELECT语句 17
    3.2.2 SELECT语句的性能 18
    3.3 使用排序子句 19
    3.3.1 排序子句 19
    3.3.2 排序的性能影响 19
    3.3.3 排序对Tempdb的影响 20
    3.4 使用T-SQL汇总 21
    3.4.1 GROUP BY 21
    3.4.2 DISTINCT 22
    3.4.3 GROUP BY与性能 22
    3.5 UPDATE语句 22
    3.5.1 UPDATE 23
    3.5.2 UPDATE语句与事务影响 23
    3.6 DELETE语句 25
    3.6.1 DELETE、TRUNCATE TABLE 25
    3.6.2 删除操作与事务日志 26
    3.7 使用过滤条件(WHERE子句) 26
    3.7.1 合理优化因素 26
    3.7.2 合理利用索引 27
    3.8 连接查询 27
    3.8.1 连接类型 27
    3.8.2 认识连接操作 28
    3.9 子查询 30
    3.9.1 子查询与性能 31
    3.9.2 IN、EXISTS与LEFT JOIN的性能对比 31
    3.9.3 FOR XML子句 32
    3.10 批量更新数据 34
    3.10.1 BULK...INSERT 34
    3.10.2 INSERT...SELECT 34
    3.10.3 SELECT...INTO 35
    3.10.4 OUTPUT子句 35
    3.10.5 MERGE 36
    3.10.6 BCP工具 36
    3.11 运行时动态管理视图 36
    3.12 小结 37
    第4章 SQL Server的内存管理 38
    4.1 Windows的内存管理 38
    4.1.1 32位操作系统 39
    4.1.2 64位操作系统 41
    4.2 SQL Server的内存管理 41
    4.2.1 SQLOS内存管理组件 41
    4.2.2 内存中的数据 44
    4.3 诊断内存瓶颈 46
    4.3.1 资源管理器诊断示例 48
    4.3.2 性能计数器诊断示例 48
    4.4 案例分析 49
    4.4.1 案例一:内存不足造成的磁盘超负荷 49
    4.4.2 案例二:内存不足的信号(RESOURCE_SEMAPHORE) 50
    4.5 小结 53
    第5章 SQL Server的任务调度 54
    5.1 任务调度者 54
    5.2 工作者 55
    5.3 任务 57
    5.4 任务调度与资源等待 58
    5.5 CPU性能监控及示例 61
    5.5.1 使用动态管理视图诊断 61
    5.5.2 使用性能计数器诊断 62
    5.5.3 MDW 63
    5.6 小结 65
    第6章 SQL Server执行计划分析 66
    6.1 查看执行计划 66
    6.2 查询优化器与执行计划的选择 70
    6.2.1 统计信息 71
    6.2.2 统计信息与执行计划(示例详解) 74
    6.3 常用的执行计划操作符 75
    6.3.1 数据访问操作符 76
    6.3.2 关联操作符 79
    6.3.3 聚合操作符 83
    6.4 执行计划缓存及重编译 86
    6.4.1 语句级别的重编译 87
    6.4.2 导致重编译的因素 87
    6.4.3 监视和解决重编译问题 88
    6.5 执行计划实践 88
    6.5.1 案例一(参数嗅探) 88
    6.5.2 案例二(疯狂的重编译) 93
    6.6 小结 95
    第7章 索引 96
    7.1 索引概念 97
    7.1.1 什么是索引 97
    7.1.2 索引的类型 97
    7.1.3 特殊的索引 98
    7.2 索引的物理结构 99
    7.2.1 基本概念 99
    7.2.2 查看文件存储格式的几种方法 103
    7.2.3 RID的物理结构 110
    7.2.4 UNIQUIFIER物理结构 117
    7.2.5 堆表行记录的物理结构 129
    7.2.6 堆表非聚集索引的物理结构 149
    7.2.7 聚集索引的物理结构 185
    7.2.8 非聚集索引的物理结构 191
    7.2.9 NULL位图物理结构 197
    7.2.10 行溢出物理结构 203
    7.2.11 LOB的物理结构 209
    7.3 索引的选择 229
    7.3.1 覆盖索引 230
    7.3.2 索引的分析 231
    7.4 查看缺失的索引 238
    7.4.1 执行计划中查看缺失索引 238
    7.4.2 查看所有缺失索引的字段 238
    7.5 查看无效索引 240
    7.6 案例分析:统计信息失效 240
    7.7 小结 243
    第8章 锁、事务与性能 244
    8.1 锁、事务要解决的问题 244
    8.2 事务的控制 249
    8.3 锁粒度 250
    8.4 锁模式 250
    8.5 锁兼容性 251
    8.6 阻塞、死锁及性能优化 253
    8.7 锁的监控 255
    8.7.1 与锁相关的性能计数器 255
    8.7.2 锁相关的动态管理视图简介 256
    8.7.3 SQL Profiler 256
    8.7.4 死锁标记 256
    8.8 轻量级锁闩锁 259
    8.8.1 闩锁模式 259
    8.8.2 闩锁的兼容性 260
    8.8.3 查看闩锁 260
    8.9 自定义事务报警 262
    8.9.1 阻塞报警 262
    8.9.2 死锁报警 264
    8.10 小结 265
    第9章 理解和使用Tempdb 266
    9.1 Tempdb的工作 266
    9.2 表变量、临时表 267
    9.2.1 统计信息 269
    9.2.2 临时表和表变量的索引 269
    9.2.3 表结构修改 270
    9.3 Tempdb的并发阻塞 270
    9.4 监视Tempdb 274
    9.4.1 性能计数器 274
    9.4.2 动态管理视图 274
    9.5 小结 275
    第10章 SQL Server数据库性能监控 276
    10.1 SQL Profiler/Trace 276
    10.1.1 选择跟踪模板 276
    10.1.2 选择跟踪事件 278
    10.1.3 过滤跟踪 279
    10.2 Data Collector与MDW 280
    10.2.1 MDW的配置 280
    10.2.2 查看性能报表 281
    10.3 性能监控的性能计数器 284
    10.4 扩展事件 285
    10.5 小结 288
    第11章 SQL Server数据库企业级配置与性能 289
    11.1 数据库表的配置 289
    11.1.1 数据压缩 289
    11.1.2 分区表和分区视图 290
    11.2 高可用性解决方案 290
    11.2.1 企业数据库发展阶段 290
    11.2.2 业务功能的数据同步 293
    11.3 小结 298
  • 内容简介:
      本书是一线DBA技术专家呕心沥血之作,积作者多年的经验结晶和实践,也是目前市场上为数不多通过存储原理来讲解性能优化、剖析SQL Server架构以帮助读者快速高效调优数据库的图书。  书中首先简要介绍了SQL Server与性能实践相关的一些基础语法及配置信息,提出与数据库性能相关的几个概要信息,再对SQL Server数据的内部实现原理进行讲解,告诉读者如何调整和优化SQL Server数据库实例的配置,接着通过SQL Server数据库存储引擎的语句优化、执行计划内部原理以及索引等综合因素分析如何优化数据库语句,保证数据库的稳定性及效率,最后是从SQL Server的数据库性能监控及高可用性解决方案出发,提出性能监控及设计层面的优化。
  • 作者简介:
      陈畅亮,程序员出身,经过几年的软件开发之后转职为DBA,热衷于技术分享。多年来活跃于博客园,是微软SQL Server方向最有价值的专家(MVP),受邀以演讲嘉宾身份参加了2015年DTCC(中国数据库技术大会)。对SQL Server的设计与优化有深刻认识,实战经验丰富,同时撰写了大量关于SQL Server的技术文章。研究方向为SQL Server、MySQL、NoSQL,以及分布式环境下海量数据存储的设计与开发。
      吴一晴,2007年毕业于厦门集美大学诚毅学院,同年就职于厦门某物流软件科技公司,担任架构师职位,主要从事C#开发及.net框架维护。2010至2014年就职于厦门某电子商务技术公司。2015年就职于国内某家装互联网O2O企业,担任数据库管理员职位,主要从事Linux、MySQL、MongoDB以及PostgreSQL等开源项目的管理和架构规划及运维工作。
  • 目录:
    序1
    序2
    第1章 安装、配置SQL Server 1
    1.1 SQL Server概述 1
    1.1.1 简介 1
    1.1.2 发展历史 1
    1.2 SQL Server安装 2
    1.2.1 硬件准备与性能 2
    1.2.2 操作系统的选择 3
    1.3 SQL Server配置 4
    1.3.1 配置管理器 4
    1.3.2 数据库实例配置 5
    1.4 小结 6
    第2章 影响SQL Server性能的因素 7
    2.1 服务器硬件 8
    2.1.1 内存 8
    2.1.2 CPU 8
    2.1.3 磁盘I/O 9
    2.1.4 网络带宽 9
    2.2 SQL Server版本对性能的限制 10
    2.3 SQL Server系统的配置 10
    2.3.1 内存配置 10
    2.3.2 CPU配置 11
    2.3.3 I/O及数据文件配置 11
    2.4 数据库结构的设计 12
    2.4.1 好的性能出自好的设计 12
    2.4.2 约束对性能的影响 12
    2.4.3 适当的冗余 13
    2.5 T-SQL语句的编写 13
    2.5.1 编写T-SQL语句的注意事项及小窍门 13
    2.5.2 使用简单SQL语句 14
    2.6 小结 14
    第3章 T-SQL与性能调优 15
    3.1 编写健壮的T-SQL语句 15
    3.2 使用查询语句 17
    3.2.1 SELECT语句 17
    3.2.2 SELECT语句的性能 18
    3.3 使用排序子句 19
    3.3.1 排序子句 19
    3.3.2 排序的性能影响 19
    3.3.3 排序对Tempdb的影响 20
    3.4 使用T-SQL汇总 21
    3.4.1 GROUP BY 21
    3.4.2 DISTINCT 22
    3.4.3 GROUP BY与性能 22
    3.5 UPDATE语句 22
    3.5.1 UPDATE 23
    3.5.2 UPDATE语句与事务影响 23
    3.6 DELETE语句 25
    3.6.1 DELETE、TRUNCATE TABLE 25
    3.6.2 删除操作与事务日志 26
    3.7 使用过滤条件(WHERE子句) 26
    3.7.1 合理优化因素 26
    3.7.2 合理利用索引 27
    3.8 连接查询 27
    3.8.1 连接类型 27
    3.8.2 认识连接操作 28
    3.9 子查询 30
    3.9.1 子查询与性能 31
    3.9.2 IN、EXISTS与LEFT JOIN的性能对比 31
    3.9.3 FOR XML子句 32
    3.10 批量更新数据 34
    3.10.1 BULK...INSERT 34
    3.10.2 INSERT...SELECT 34
    3.10.3 SELECT...INTO 35
    3.10.4 OUTPUT子句 35
    3.10.5 MERGE 36
    3.10.6 BCP工具 36
    3.11 运行时动态管理视图 36
    3.12 小结 37
    第4章 SQL Server的内存管理 38
    4.1 Windows的内存管理 38
    4.1.1 32位操作系统 39
    4.1.2 64位操作系统 41
    4.2 SQL Server的内存管理 41
    4.2.1 SQLOS内存管理组件 41
    4.2.2 内存中的数据 44
    4.3 诊断内存瓶颈 46
    4.3.1 资源管理器诊断示例 48
    4.3.2 性能计数器诊断示例 48
    4.4 案例分析 49
    4.4.1 案例一:内存不足造成的磁盘超负荷 49
    4.4.2 案例二:内存不足的信号(RESOURCE_SEMAPHORE) 50
    4.5 小结 53
    第5章 SQL Server的任务调度 54
    5.1 任务调度者 54
    5.2 工作者 55
    5.3 任务 57
    5.4 任务调度与资源等待 58
    5.5 CPU性能监控及示例 61
    5.5.1 使用动态管理视图诊断 61
    5.5.2 使用性能计数器诊断 62
    5.5.3 MDW 63
    5.6 小结 65
    第6章 SQL Server执行计划分析 66
    6.1 查看执行计划 66
    6.2 查询优化器与执行计划的选择 70
    6.2.1 统计信息 71
    6.2.2 统计信息与执行计划(示例详解) 74
    6.3 常用的执行计划操作符 75
    6.3.1 数据访问操作符 76
    6.3.2 关联操作符 79
    6.3.3 聚合操作符 83
    6.4 执行计划缓存及重编译 86
    6.4.1 语句级别的重编译 87
    6.4.2 导致重编译的因素 87
    6.4.3 监视和解决重编译问题 88
    6.5 执行计划实践 88
    6.5.1 案例一(参数嗅探) 88
    6.5.2 案例二(疯狂的重编译) 93
    6.6 小结 95
    第7章 索引 96
    7.1 索引概念 97
    7.1.1 什么是索引 97
    7.1.2 索引的类型 97
    7.1.3 特殊的索引 98
    7.2 索引的物理结构 99
    7.2.1 基本概念 99
    7.2.2 查看文件存储格式的几种方法 103
    7.2.3 RID的物理结构 110
    7.2.4 UNIQUIFIER物理结构 117
    7.2.5 堆表行记录的物理结构 129
    7.2.6 堆表非聚集索引的物理结构 149
    7.2.7 聚集索引的物理结构 185
    7.2.8 非聚集索引的物理结构 191
    7.2.9 NULL位图物理结构 197
    7.2.10 行溢出物理结构 203
    7.2.11 LOB的物理结构 209
    7.3 索引的选择 229
    7.3.1 覆盖索引 230
    7.3.2 索引的分析 231
    7.4 查看缺失的索引 238
    7.4.1 执行计划中查看缺失索引 238
    7.4.2 查看所有缺失索引的字段 238
    7.5 查看无效索引 240
    7.6 案例分析:统计信息失效 240
    7.7 小结 243
    第8章 锁、事务与性能 244
    8.1 锁、事务要解决的问题 244
    8.2 事务的控制 249
    8.3 锁粒度 250
    8.4 锁模式 250
    8.5 锁兼容性 251
    8.6 阻塞、死锁及性能优化 253
    8.7 锁的监控 255
    8.7.1 与锁相关的性能计数器 255
    8.7.2 锁相关的动态管理视图简介 256
    8.7.3 SQL Profiler 256
    8.7.4 死锁标记 256
    8.8 轻量级锁闩锁 259
    8.8.1 闩锁模式 259
    8.8.2 闩锁的兼容性 260
    8.8.3 查看闩锁 260
    8.9 自定义事务报警 262
    8.9.1 阻塞报警 262
    8.9.2 死锁报警 264
    8.10 小结 265
    第9章 理解和使用Tempdb 266
    9.1 Tempdb的工作 266
    9.2 表变量、临时表 267
    9.2.1 统计信息 269
    9.2.2 临时表和表变量的索引 269
    9.2.3 表结构修改 270
    9.3 Tempdb的并发阻塞 270
    9.4 监视Tempdb 274
    9.4.1 性能计数器 274
    9.4.2 动态管理视图 274
    9.5 小结 275
    第10章 SQL Server数据库性能监控 276
    10.1 SQL Profiler/Trace 276
    10.1.1 选择跟踪模板 276
    10.1.2 选择跟踪事件 278
    10.1.3 过滤跟踪 279
    10.2 Data Collector与MDW 280
    10.2.1 MDW的配置 280
    10.2.2 查看性能报表 281
    10.3 性能监控的性能计数器 284
    10.4 扩展事件 285
    10.5 小结 288
    第11章 SQL Server数据库企业级配置与性能 289
    11.1 数据库表的配置 289
    11.1.1 数据压缩 289
    11.1.2 分区表和分区视图 290
    11.2 高可用性解决方案 290
    11.2.1 企业数据库发展阶段 290
    11.2.2 业务功能的数据同步 293
    11.3 小结 298
查看详情
系列丛书 / 更多
SQL Server性能调优实战
Redis设计与实现
黄健宏 著
SQL Server性能调优实战
MySQL技术内幕:InnoDB存储引擎(第2版)
姜承尧 著
SQL Server性能调优实战
Redis开发与运维
付磊、张益军 著
SQL Server性能调优实战
MySQL DBA修炼之道
陈晓勇 编
SQL Server性能调优实战
Oracle高性能自动化运维
冷菠 著
SQL Server性能调优实战
mysql管理之道:性能调优、高可用与监控
贺春旸 著
SQL Server性能调优实战
PostgreSQL修炼之道:从小工到专家
唐成 著
SQL Server性能调优实战
NoSQL实践指南:基本原则、设计准则及实用技巧
[美]丹·苏利文(DanSullivan) 著;爱飞翔 译
SQL Server性能调优实战
MySQL技术内幕:InnoDB存储引擎
姜承尧 著
SQL Server性能调优实战
构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化
刘炳林 著
SQL Server性能调优实战
DBA修炼之道:数据库管理员的第一本书(原书第2版)
[美]穆林斯(Craig S. Mullins) 著;褚晓霞 译
SQL Server性能调优实战
Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南
孙风栋、王澜 著
相关图书 / 更多
SQL Server性能调优实战
SQL从入门到进阶
陈红波 编著
SQL Server性能调优实战
SQL Server数据库实用案例教程(第2版·微课视频版)
王雪梅 李海晨 主编;马亚丽 华进 蔡斌杰 副主编
SQL Server性能调优实战
SQLServer2019数据库管理项目教程(活页式高等职业教育计算机专业活页式系列教材)
黄小花、黄侃、熊慧芳 编
SQL Server性能调优实战
SQL面试宝典:图解数据库求职题(全彩)
猴子
SQL Server性能调优实战
SQL Server数据库设计与应用(第2版)
张成叔
SQL Server性能调优实战
SQL Server数据库应用入门(项目式+微课版)
李武韬 文瑛 吴超
SQL Server性能调优实战
SQL Server实例教程(2019版)
刘志成
SQL Server性能调优实战
SQL实践教程(第10版)
[美]马克·谢尔曼(Mark Shellman)哈桑·阿夫尤尼(Hassan A
SQL Server性能调优实战
SQL Server 2014数据库原理与实训教程
吴小刚 主编;彭文惠
SQL Server性能调优实战
SQL语言从入门到精通
明日科技
SQL Server性能调优实战
SQL Server从入门到精通(第5版)
明日科技
SQL Server性能调优实战
SQL数据分析
[美]凯西·谷村(Cathy Tanimura)