当前位置:主页 > 书籍配套资源 > SQL Server配套资源
《SQL Server 性能优化与管理的艺术》资源

《SQL Server 性能优化与管理的艺术》资源

  • 更新:2022-04-07
  • 大小:4.2 MB
  • 类别:SQL Server
  • 作者:黄钊吉
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

全书共15章,分为三部分,第一部分(第1~2章)为概述部分,阐述SQL Server方面的“性能”及相关概念。并给出常规的性能及性能相关的问题侦测的“方法论”,读者可以通过这两章的介绍,对SQL Server性能问题有一个高层次的认识。第二部分(第3~10章)为知识准备部分,这部分介绍了SQL Server性能相关的基础知识。只有了解了性能及影响性能的相关部分,才能准确地、高效地进行优化。第三部分(第11~15章)为工具使用及优化演示,在多服务器、大数据的环境下,不应该再使用原始的故障侦测方法,借用各种工具能更全面、更高效地找到问题并且解决问题。

通过这三部分的介绍,可以使读者有一个清晰的性能优化及管理方面的认识,并且通过大量演示,让读者能够较快地进入实战阶段。本书的重点主要集中在第二部分,这部分既介绍了性能相关的内容,以便后续使用,也给出了一个后续深入学习的“清单”,让读者可以根据书中的知识点,进行更深入的学习。

封面图

目录

  • 前言
  • 第一部分SQL Server性能优化概述
  • 第1章性能概述2
  • 1.1何为性能2
  • 1.2性能指标3
  • 1.3性能目标3
  • 1.4影响性能的常见因素4
  • 1.4.1应用程序的体系结构4
  • 1.4.2应用程序设计5
  • 1.4.3事务和隔离级别5
  • 1.4.4T-SQL代码5
  • 1.4.5硬件资源6
  • 1.4.6SQL Server配置6
  • 1.5小结8
  • 第2章初探优化9
  • 2.1优化论9
  • 2.2定义问题10
  • 2.2.1使用工具找到性能瓶颈12
  • 2.2.2通过性能数据进行分类12
  • 2.3根据性能数据分析问题14
  • 2.4验证处理手段及部署14
  • 2.5问题归档15
  • 2.6小结15
  • 第二部分SQL Server性能优化理论知识
  • 第3章体系结构18
  • 3.1SQL Server查询体系18
  • 3.2数据库事务22
  • 3.2.1事务特性22
  • 3.2.2事务类型22
  • 3.3查询的生命周期23
  • 3.3.1SQL Server组件23
  • 3.3.2缓冲池23
  • 3.3.3简单的SELECT查询过程23
  • 3.4执行模型28
  • 3.5SQLOS30
  • 3.6SQL Server 内存30
  • 3.6.1物理内存和虚拟内存30
  • 3.6.2SQL Server 内存32
  • 3.6.3内存问题诊断34
  • 3.6.4优化SQL Server内存配置34
  • 3.6.5优化Ad-Hoc 工作负载36
  • 3.7小结38
  • 第4章硬件资源39
  • 4.1CPU39
  • 4.1.1SQL Server工作负载类型39
  • 4.1.2CPU评估40
  • 4.1.3CPU配置43
  • 4.2存储系统43
  • 4.2.1磁盘I/O43
  • 4.2.2驱动器类型44
  • 4.2.3RAID配置45
  • 4.2.4配置存储系统46
  • 4.2.5检查读写速率46
  • 4.3CPU 性能侦测48
  • 4.3.1侦测CPU压力48
  • 4.3.2研究CPU相关的等待信息49
  • 4.3.3查找CPU消耗高的查询50
  • 4.3.4常见高CPU利用率的原因51
  • 4.4I/O性能侦测59
  • 4.5小结59
  • 第5章查询优化器60
  • 5.1查询过程60
  • 5.2查询优化器62
  • 5.2.1产生执行计划62
  • 5.2.2连接63
  • 5.3执行引擎66
  • 5.3.1数据访问操作66
  • 5.3.2聚合操作70
  • 5.3.3并行执行73
  • 5.4统计信息和开销预估73
  • 5.4.1统计信息73
  • 5.4.2统计信息维护77
  • 5.4.3计算列上的统计信息78
  • 5.4.4过滤索引上的统计信息79
  • 5.4.5预估数量错误81
  • 5.4.6更新统计信息81
  • 5.5优化器工作过程83
  • 5.6小结88
  • 第6章索引及统计信息89
  • 6.1索引基础90
  • 6.1.1为什么要索引90
  • 6.1.2索引的主要类型91
  • 6.1.3索引元数据91
  • 6.2索引存储基础92
  • 6.2.1SQL Server存储基础92
  • 6.2.2页的组织95
  • 6.2.3检查工具98
  • 6.2.4页碎片110
  • 6.3索引统计信息113
  • 6.3.1索引层级的统计信息113
  • 6.3.2索引使用的统计信息117
  • 6.3.3索引操作的统计信息120
  • 6.3.4索引物理统计信息126
  • 6.4索引误区及使用建议127
  • 6.4.1常见误区127
  • 6.4.2索引使用建议135
  • 6.4.3关于索引的查询建议137
  • 6.5索引维护143
  • 6.5.1索引碎片143
  • 6.5.2索引统计信息维护155
  • 6.6索引工具156
  • 6.6.1缺失索引DMO156
  • 6.6.2使用DMO158
  • 6.6.3数据库引擎优化顾问159
  • 6.6.4使用DMO侦测索引问题162
  • 6.7索引策略165
  • 6.7.1堆165
  • 6.7.2聚集索引167
  • 6.7.3非聚集索引168
  • 6.7.4索引存储182
  • 6.7.5索引视图185
  • 6.8索引分析187
  • 6.8.1索引方法论187
  • 6.8.2监控188
  • 6.8.3分析199
  • 6.8.4实施212
  • 6.8.5重复213
  • 6.9案例213
  • 6.10小结215
  • 第7章等待216
  • 7.1等待简介217
  • 7.1.1什么是等待217
  • 7.1.2为什么需要等待信息218
  • 7.1.3保存等待信息218
  • 7.2查询等待219
  • 7.3并行执行219
  • 7.3.1CXPACKET220
  • 7.3.2CXPACKET潜在问题221
  • 7.3.3降低CXPACKET等待221
  • 7.3.4CXPACKET深度分析222
  • 7.3.5CXPACKET建议222
  • 7.4多任务等待223
  • 7.4.1SOS_SCHEDU-LER_YIELD223
  • 7.4.2多任务类型225
  • 7.4.3多任务潜在问题226
  • 7.4.4降低多任务等待226
  • 7.5I/O 等待227
  • 7.6备份和还原等待231
  • 7.7锁定等待231
  • 7.8数据库日志等待233
  • 7.9外部资源等待235
  • 7.10其他常见的等待类型237
  • 7.11小结238
  • 第8章执行计划239
  • 8.1基础知识239
  • 8.1.1查询提交240
  • 8.1.2预估与实际执行计划241
  • 8.1.3执行计划重用242
  • 8.1.4清除缓存的执行计划243
  • 8.1.5执行计划格式243
  • 8.1.6使用DMO获取缓存中的执行计划243
  • 8.1.7使用SQL Trace自动获取执行计划244
  • 8.2图形化执行计划244
  • 8.2.1基础知识245
  • 8.2.2单表查询245
  • 8.2.3表关联252
  • 8.2.4筛选数据256
  • 8.2.5常见操作符258
  • 8.2.6INSERT/UPDATE/DELETE的执行计划261
  • 8.2.7复杂查询264
  • 8.3控制执行计划280
  • 8.3.1查询提示281
  • 8.3.2联接提示293
  • 8.3.3表提示297
  • 8.4扩展信息298
  • 8.4.1阅读庞大的执行计划298
  • 8.4.2并行操作305
  • 8.4.3强制参数化306
  • 8.4.4使用计划指南307
  • 8.5案例313
  • 8.6小结316
  • 第9章锁、阻塞和死锁317
  • 9.1并发和事务318
  • 9.1.1悲观并发和乐观并发319
  • 9.1.2事务320
  • 9.1.3丢失更新325
  • 9.2锁的基础327
  • 9.2.1锁定概述327
  • 9.2.2锁资源/锁类型328
  • 9.2.3锁模式329
  • 9.2.4锁的持续时间330
  • 9.2.5锁的所有权330
  • 9.2.6锁的元数据331
  • 9.3高级锁概念332
  • 9.3.1锁兼容性332
  • 9.3.2锁模式转换333
  • 9.3.3意向锁335
  • 9.3.4键范围锁335
  • 9.3.5锁升级336
  • 9.3.6其他类型的锁338
  • 9.3.7非锁定引起的阻塞339
  • 9.4控制锁行为339
  • 9.4.1通过隔离级别控制并发性和锁定行为340
  • 9.4.2设定锁的超时时间340
  • 9.4.3锁提示341
  • 9.5悲观并发的故障侦测341
  • 9.5.1侦测锁定341
  • 9.5.2阻塞的故障排查344
  • 9.6乐观并发348
  • 9.6.1行版本存储349
  • 9.6.2行版本存储工作机制349
  • 9.6.3基于快照的隔离模式349
  • 9.6.4监控和管理版本存储350
  • 9.6.5管理版本存储351
  • 9.6.6选择并发模式353
  • 9.7死锁354
  • 9.7.1死锁类型354
  • 9.7.2自动死锁侦测356
  • 9.7.3捕获死锁356
  • 9.7.4读懂死锁图363
  • 9.7.5最小化死锁364
  • 9.8监控和处理366
  • 9.8.1使用DMV捕获阻塞信息366
  • 9.8.2使用Extended Events和blocked_process_report事件捕获368
  • 9.8.3阻塞问题解决方案368
  • 9.8.4建议369
  • 9.9小结371
  • 第10章TempDB372
  • 10.1TempDB简介372
  • 10.1.1TempDB是什么372
  • 10.1.2什么操作会用到TempDB373
  • 10.2TempDB上的常见问题及监控378
  • 10.2.1空间问题378
  • 10.2.2TempDB的I/O瓶颈382
  • 10.2.3过多的DDL操作导致系统表上的瓶颈383
  • 10.3优化TempDB383
  • 10.3.1配置TempDB384
  • 10.3.2优化TempDB385
  • 10.3.3扩充阅读386
  • 10.4小结386
  • 第三部分工具使用
  • 第11章使用传统工具定位瓶颈388
  • 11.1使用性能监视器及PAL收集和分析性能389
  • 11.1.1性能监视器389
  • 11.1.2数据收集器集392
  • 11.1.3使用PAL分析403
  • 11.2使用DMO获取性能数据407
  • 11.2.1DMO介绍407
  • 11.2.2示例407
  • 11.3使用Profiler获取性能数据414
  • 11.3.1用法及注意事项414
  • 11.3.2Profiler示例416
  • 11.3.3SQL Trace示例419
  • 11.4DBCC命令422
  • 11.4.1DBCC SQLPERF422
  • 11.4.2DBCC INPUTBUFFER424
  • 11.4.3DBCC TRACEON/TRACEOFF425
  • 11.4.4DBCC SHOWCONTIG425
  • 11.4.5DBCC OPENTRAN426
  • 11.5小结427
  • 第12章使用新工具定位瓶颈428
  • 12.1 PSSDIAG428
  • 12.2PowerShell434
  • 12.2.1简介434
  • 12.2.2打开PowerShell434
  • 12.2.3使用PowerShell侦测服务器问题435
  • 12.3小结438
  • 第13章Extended Events439
  • 13.1简介439
  • 13.2创建扩展事件444
  • 13.3查询收集的数据449
  • 13.3.1监视实时数据449
  • 13.3.2使用T-SQL查看451
  • 13.4案例452
  • 13.5小结458
  • 第14章其他工具459
  • 14.1SQLDiag459
  • 14.2数据库性能优化顾问462
  • 14.2.1使用DTA进行单查询分析462
  • 14.2.2使用DTA进行全库分析466
  • 14.3Windows事件日志及
  • SQL Server Errorlog470
  • 14.3.1Windows事件日志470
  • 14.3.2SQL Server 错误日志471
  • 14.4小结472
  • 第15章优化服务器配置473
  • 15.1数据库工作负载特点473
  • 15.1.1基础知识473
  • 15.1.2工作负载配置474
  • 15.2工作负载优化步骤477
  • 15.2.1数据库设计477
  • 15.2.2查询设计478
  • 15.2.3数据库服务器配置478
  • 15.2.4数据库管理479
  • 15.2.5数据库备份480
  • 15.3小结481

资源下载

资源下载地址1:https://pan.baidu.com/s/1734_uUaBNrOP6H4AdePtRw

相关资源

网友留言