
SQL Server 2012 深入解析与性能最佳化(第3版)
《SQL Server 2012 深入解析与性能最佳化(第3版)》是2013年11月22日出版的图书,作者是Christian Bolton、Justin Langford、Glem Berry、Gavin Payne、Amit Banerjee、Rob Farley 。
基本介绍
- 书名:SQL Server 2012 深入解析与性能最佳化(第3版)
- 作者:Christian Bolton、Justin Langford、Glem Berry、Gavin Payne、Amit Banerjee、Rob Farley
- 译者:胡克宁
- ISBN:9787302342311
- 定价:68元
- 出版社:清华大学出版社
- 出版时间:2013年11月22日
- 装帧:平装
书籍信息
《SQLServer2012深入解析与性能最佳化(第3版)呈现大量专家建议和实例,指导您在透彻理解SQLServer和Windows内部原理的基础上排除SQLServer2012故障。通过学习本书,您将能熟练使用具体的故障排除工具,并正确解释工具的输出结果,从而迅速地查找和排除SQLServer所在伺服器的各种性能问题。
主要内容
◆完整介绍查询的生命周期,呈现实际环境中的SQLServer架构
◆介绍伺服器硬体和存储系统,分析SQLServer如何使用记忆体以及正确的记忆体配置方式
◆探讨查询的处理和执行,讲述锁和tempdb资料库的工作原理
◆分析如何使用故障排除工具针对系统範围的性能问题收集数据、展开分析并找到根源
◆详述如何使用PowerShell和扩展事件来增强故障排除工具集,以及如何在虚拟环境中管理SQLServer
主要内容
◆完整介绍查询的生命周期,呈现实际环境中的SQLServer架构
◆介绍伺服器硬体和存储系统,分析SQLServer如何使用记忆体以及正确的记忆体配置方式
◆探讨查询的处理和执行,讲述锁和tempdb资料库的工作原理
◆分析如何使用故障排除工具针对系统範围的性能问题收集数据、展开分析并找到根源
◆详述如何使用PowerShell和扩展事件来增强故障排除工具集,以及如何在虚拟环境中管理SQLServer
图书目录
第I部分核心
第1章SQLServer体系结构 3
1.1简介 3
1.2资料库事务 4
1.2.1ACID属性 4
1.2.2SQLServer事务 5
1.3一个查询的生命周期 5
1.3.1关係引擎和存储引擎 6
1.3.2缓冲池 6
1.3.3一个基本的Select查询 7
1.3.4一个简单的更新查询 15
1.3.5恢复 17
1.4SQLServer的执行模式
和SQLOS 21
1.4.1执行模式 22
1.4.2SQLOS 24
1.5本章小结 25
第2章硬体揭秘 27
2.1硬体的重要性 27
2.2工作负荷如何影响硬体及
存储考虑事项 28
2.2.1工作负荷的类型 28
2.2.2伺服器选型 30
2.2.3伺服器型号的演变 30
2.3处理器厂商的选择 32
2.3.1Intel处理器 33
2.3.2AMD处理器及编号 41
2.4为冗余选择及配置硬体 43
2.5硬体比较工具 45
2.5.1TPC-E基準 45
2.5.2Geekbench基準测试 47
2.6本章小结 47
第3章理解记忆体 49
3.1简介 49
3.2物理记忆体和虚拟记忆体 50
3.2.1物理记忆体 50
3.2.2最大支持的物理记忆体 51
3.2.3虚拟记忆体 51
3.2.4NUMA 55
3.3SQLServer记忆体 59
3.3.1记忆体节点 60
3.3.2记忆体分配员、快取和
缓冲池 60
3.4最佳化SQLServer记忆体配置 66
3.4.1最小伺服器记忆体和最大
伺服器记忆体 66
3.4.2锁定记忆体页 68
3.4.3即席式工作负荷最佳化 70
3.5本章小结 72
第4章存储系统 73
4.1简介 73
4.2SQLServerI/O 74
4.3存储技术 74
4.3.1SQLServer和WindowsI/O
子系统 78
4.3.2选择合适的存储网路 80
4.3.3共享存储阵列 82
4.3.4容量最佳化 82
4.3.5分层存储 84
4.3.6数据複製 85
4.3.7远程数据複製 88
4.3.8Windows故障转移群集 89
4.3.9SQLServerAlwaysOn
可用性组 90
4.3.10风险缓解计画 91
4.4测量性能 91
4.4.1存储性能计数器 92
4.4.2磁碟驱动器性能 93
4.4.3顺序磁碟访问 96
4.4.4伺服器伫列 97
4.4.5档案布局 97
4.4.6分区对齐 99
4.4.7NTFS分配单元大小 99
4.4.8快闪记忆体 100
4.4.9存储性能测试 101
4.5本章小结 105
第5章查询处理和执行 107
5.1简介 107
5.2查询处理 108
5.2.1分析 108
5.2.2Algebrize 108
5.3查询最佳化 109
5.3.1并行计画 110
5.3.2Algebrizer树 111
5.3.3sql_handle和plan_handle 111
5.3.4理解统计信息 111
5.3.5计画快取和重编译 113
5.3.6影响最佳化 119
5.4查询计画 125
5.4.1查询计画操作符 128
5.4.2读取查询计画 131
5.5执行查询 135
5.6本章小结 143
第6章锁和并发 145
6.1简介 145
6.2事务 146
6.2.1A是原子性 146
6.2.2C是一致性 147
6.2.3I是隔离性 147
6.2.4D是持久性 147
6.3资料库事务 147
6.3.1原子性 147
6.3.2一致性 147
6.3.3隔离性 148
6.3.4持久性 148
6.4并发的危险 149
6.4.1丢失更新 149
6.4.2髒读 151
6.4.3不可重複读 152
6.4.4幻影读 154
6.4.5重複读 157
6.4.6Halloween效应 158
6.5锁 159
6.5.1监视锁 159
6.5.2锁资源 161
6.5.3锁模式 163
6.5.4兼容性表 169
6.6锁升级 170
6.7死锁 171
6.8隔离级别 171
6.8.1可序列化 172
6.8.2可重複读 173
6.8.3已提交读 173
6.8.4未提交读和NOLOCK 174
6.8.5快照 174
6.8.6已提交读快照 174
6.9本章小结 175
第7章闩锁和自旋锁 177
7.1简介 177
7.2症状 178
7.2.1识别症状 178
7.2.2检测闩锁争用 179
7.2.3检测自旋锁争用 180
7.2.4争用指示器 181
7.3易受影响的系统 182
7.4了解闩锁和自旋锁 182
7.4.1定义 182
7.4.2闩锁示例 183
7.5闩锁类型 190
7.6闩锁模式 190
7.6.1NL 191
7.6.2KP 191
7.6.3SH 191
7.6.4UP 191
7.6.5EX 191
7.6.6DT 191
7.6.7闩锁兼容性 192
7.6.8授权顺序 192
7.6.9闩锁等待 193
7.7超闩锁和子闩锁 194
7.8监控闩锁和自旋锁 195
7.8.1动态管理视图 195
7.8.2性能监视器 196
7.8.3扩展事件 198
7.9闩锁争用示例 199
7.9.1当聚集索引键是ID栏位
时的插入操作 199
7.9.2伫列 200
7.9.3tempdb中的更新闩锁 203
7.9.4名称解析中的自旋锁争用 204
7.10本章小结 205
第8章了解tempdb资料库 207
8.1简介 207
8.2概述和使用 208
8.2.1用户临时对象 208
8.2.2内部临时对象 213
8.2.3版本存储区 213
8.3常见故障排除 217
8.3.1闩锁争用 217
8.3.2监视tempdb的I/O性能 226
8.3.3空间问题故障排除 228
8.4配置最佳实践 229
8.4.1tempdb的档案布局 229
8.4.2tempdb的初始大小和
自动增长 231
8.4.3配置多个tempdb数据
档案 234
8.5本章小结 234
第Ⅱ部分故障排除工具和实战经验
第9章故障排除方法论和实践 239
9.1简介 239
9.2处理问题 240
9.2.1成功排除故障的十个步骤 240
9.2.2行为和态度 242
9.2.3成功标準 242
9.2.4与利益相关者打交道 243
9.2.5服务水平协定 244
9.2.6聘请外界帮助 244
9.3定义问题 245
9.3.1识别问题的指导方针 245
9.3.2隔离问题 246
9.3.3性能瓶颈 247
9.4数据收集 249
9.4.1关注数据收集 250
9.4.2了解数据收集过程 250
9.4.3工具和实用工具 251
9.5数据分析 252
9.6验证和实施解决方案 253
9.6.1验证变更 253
9.6.2孤立地测试变更 254
9.6.3实施解决方案 254
9.7本章小结 254
第10章通过PerfMon和PAL工具
查看伺服器性能 255
10.1简介 255
10.2性能监视器概述 256
10.2.1可靠性和性能监视器 257
10.2.2SQLServer2012在PerfMon
中新添的计数器 259
10.2.3PerfMon入门 262
10.3性能监视器使用进阶 271
10.3.1瓶颈和SQLServer 272
10.3.2规範性指南 273
10.3.3等待统计信息分析 278
10.3.4获得性能基準 278
10.4日誌性能分析 278
10.5其他PerfMon日誌分析工具 282
10.5.1通过SQLServer分析
PerfMon日誌 282
10.5.2结合PerfMon日誌和
SQLProfiler跟蹤 282
10.5.3使用Relog 283
10.5.4使用LogMan 284
10.5.5使用LogParser 285
10.6本章小结 285
第11章通过SQLdiag整合数据
收集 287
11.1数据收集的困境 287
11.2数据收集的方法 288
11.3熟悉SQLdiag 289
11.3.1在快照模式下使用
SQLdiag 290
11.3.2作为一个命令行工具
使用SQLdiag 291
11.3.3作为一个服务使用
SQLdiag 294
11.4使用SQLdiag配置管理器 297
11.4.1用Diag管理器配置
SQLdiag数据收集 298
11.4.2为SQLdiag配置添加
跟蹤过滤器 301
11.5使用最佳实践 310
11.5.1更好地收集长期数据 310
11.5.2过滤噪音 311
11.5.3用SQLdiag进行警报
驱动的数据收集 314
11.6本章小结 314
第12章通过SQLNexus整合一切 315
12.1介绍SQLNexus 315
12.2熟悉SQLNexus 316
12.2.1先决条件 316
12.2.2将数据载入到Nexus
资料库中 318
12.2.3分析聚合数据 321
12.3自定义SQLNexus 329
12.3.1使用ReadTrace.exe 330
12.3.2为SQLNexus建立
自定义报表 331
12.3.3使用命令提示符运行
SQLNexus 331
12.3.4在SQLNexus资料库中
创建自己的表格 331
12.3.5编写自己的查询 333
12.3.6OSTRESS执行档 334
12.4解决常见问题 335
12.4.1问题1 335
12.4.2问题2 335
12.4.3问题3 336
12.4.4问题4 336
12.5本章小结 337
第13章使用扩展事件诊断SQL
Server2012 339
13.1介绍扩展事件 339
13.2熟悉扩展事件 340
13.3使用扩展事件的原因 340
13.3.1SQLServer路线图 341
13.3.2图形工具 341
13.3.3低影响 341
13.3.4使用扩展事件的时机 342
13.4扩展事件的含义 342
13.4.1扩展事件名称的来源 343
13.4.2扩展事件术语 343
13.5在SQLServer2012中创建
扩展事件 352
13.5.1介绍新会话窗体 352
13.5.2监控伺服器登录 356
13.5.3用扩展事件监控页拆分 357
13.5.4计算每个对象获得锁的
次数 358
13.5.5用T-SQL创建会话 360
13.6查看由扩展事件捕获的数据 360
13.7本章小结 366
第14章使用PowerShell增强故障
排除工具集 367
14.1介绍PowerShell 367
14.2熟悉PowerShell 368
14.2.1PowerShell环境 369
14.2.2基础知识——cmdlet、变数、
高级函式和模组 371
14.2.3远程工作 377
14.2.4SQLServer2012中的
新功能 377
14.3使用PowerShell来调查
伺服器问题 380
14.3.1查询磁碟空间利用率 380
14.3.2查询当前伺服器活动 381
14.3.3查询警告或者错误信息 383
14.3.4查询伺服器性能 383
14.4主动使用PowerShell调试
SQLServer性能 384
14.4.1索引维护 384
14.4.2管理备份的磁碟空间
利用率 385
14.4.3使用SMO提取DLL 385
14.4.4计画脚本执行 391
14.5本章小结 391
第15章提供SQLServer健康检查 393
15.1SQLServer健康检查的
重要性 393
15.2运行DMV和DMF查询 394
15.3SQLServerBuild 396
15.4资料库级别的查询 414
15.5本章小结 430
第16章提供可管理性和性能 431
16.1用SQLServer可管理性
功能提高效率 431
16.2SQLServer2012中的
可管理性增强功能 432
16.3基于策略的管理 432
16.4其他管理SQLServer的
微软工具 446
16.4.1系统中心顾问 446
16.4.2系统中心操作管理器 448
16.5本章小结 451
第17章在虚拟环境中运行
SQLServer 453
17.1向伺服器虚拟化转变 453
17.2虚拟化概述 454
17.2.1虚拟化的历史 455
17.2.2虚拟化的广度 455
17.2.3平台虚拟化 456
17.2.4云计算 457
17.3为何要虚拟化伺服器 457
17.3.1商业利益 457
17.3.2技术利益 458
17.3.3封装 459
17.3.4SQLServer2012和
虚拟化 459
17.3.5虚拟化的局限性 460
17.4常见的虚拟化产品 461
17.4.1VMware 461
17.4.2微软Hyper-V 462
17.4.3Xen 463
17.4.4对虚拟化的硬体支持 463
17.5虚拟化概念 463
17.5.1主机伺服器 464
17.5.2管理程式 464
17.5.3虚拟伺服器(或Guest
伺服器或者虚拟机) 465
17.6虚拟化的扩展功能 466
17.6.1快照 466
17.6.2高可用性特性 467
17.6.3线上迁移 467
17.6.4高可用虚拟伺服器 469
17.6.5主机和Guest群集 470
17.6.6使用虚拟化的高可用性
特性部署SQLServer 470
17.7管理争用 471
17.7.1良性争用 471
17.7.2恶性争用 471
17.7.3按需分配记忆体 472
17.7.4加权 473
17.8确定虚拟化的候选者 474
17.8.1指导原则 474
17.8.2伺服器的工作负荷 474
17.8.3收集规模数据 475
17.8.4规模工具 476
17.8.5与性能无关的需求 476
17.9为成功的虚拟资料库伺服器
设计架构 477
17.9.1为虚拟资料库伺服器与
物理资料库伺服器设计
架构 477
17.9.2虚拟资料库伺服器设计 478
17.10监视虚拟资料库伺服器 485
17.11本章小结 490
转载请注明出处海之美文 » SQL Server 2012 深入解析与性能最佳化(第3版)