《SQL Server 求生秘籍》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)亨德森主编;若启,一辉,瞿杰译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115191113
  • 页数:342 页
图书介绍:本书帮助你解决众多数据库引擎方面的问题,每一章从关键的SQL Server组件入手,然后探讨用户遇见的常见问题,并给出解决方案。本书的主要内容包括等待和阻塞、数据毁坏和恢复、内存、过程缓存、查询进程等。本书的作者都是来自微软公司客户支持服务部门的SQL Server的开发团队和支持专家。这是一部保证SQL Server良好运行的不可或缺的图书。

第1章 等待和阻塞 1

1.1等待类型 1

1.2对阻塞问题进行故障排查 2

1.3识别阻塞 3

1.3.1通过sys.dm_ os_ waiting_tasks来识别阻塞 3

1.3.2从统计上识别阻塞 5

1.4确定阻塞的原因 8

1.4.1当前的语句和计划 8

1.4.2阻塞模式 8

1.4.3阻塞链 9

1.5资源类型的细节 10

1.5.1闩锁 10

1.5.2锁 18

1.5.3外部等待类型 29

1.5.4计时器和队列等待类型 29

1.5.5 10操作的等待类型 30

1.5.6其他等待类型 31

1.6死锁 32

1.7监视阻塞 33

1.7.1等待的统计信息 33

1.7.2当前的等待信息 33

1.8小结 36

1.9其他资源 36

第2章 数据损坏及恢复 37

2.1基本原理 38

2.2 SQL Server 2005存储内幕 39

2.2.1数据库及文件状态 39

2.2.2资源数据库 40

2.2.3目录视图和基本系统表 41

2.2.4分配结构 50

2.2.5数据库校验和 53

2.2.6快速恢复 53

2.2.7延期事务 54

2.2.8只读的压缩数据库 54

2.3 SQL Server 2005增强 55

2.3.1.备份增强 55

2.3.2还原增强 55

2.3.3 DBCC CHECKDB增强 56

2.4数据恢复最佳实践 58

2.4.1备份/还原最佳实践 58

2.4.2数据库及日志最佳实践 59

2.4.3 DBCC CHECKDB最佳实践 60

2.5数据恢复故障排查场景 61

2.5.1系统数据库恢复 61

2.5.2恢复资源数据库 68

2.5.3创建tempdb故障 69

2.5.4重装操作系统 69

2.6用户数据库不可访问 69

2.6.1数据库被标记为RECOVERY PENDING 70

2.6.2处理延迟事务 77

2.6.3数据库被标记为SUSPECT 78

2.6.4粘贴数据库故障 79

2.7 BACKUP/RESTORE故障 80

2.7.1 BACKUP故障 80

2.7.2 RESTORE故障 84

2.8数据库一致性错误 85

2.8.1处理数据库一致性运行时错误 85

2.8.2处理DBCC CHECKDB错误 89

2.8.3修复与还原 100

2.8.4每个错误表示什么 101

2.8.5解释 101

2.8.6用户动作 101

2.8.7 REPAIR ALLOW DATA LOSS真正的意思是什么 102

2.8.8进行恢复之前的根本原因分析 102

2.8.9如果修复没有用,应该怎么办 103

2.8.10复制数据与修复 103

2.8.11找出损坏的根本原因:清单 103

第3章 内存 110

3.1 Windows内存管理入门 110

3.1.1内部的虚拟内存——虚拟地址空间 110

3.1.2外部虚拟内存 113

3.1.3内部物理内存 113

3.1.4外部物理内存 114

3.1.5内存压力 115

3.1.6 NUMA支持 117

3.2 SQLOS和SQL Server的内存管理 118

3.2.1内存结点 118

3.2.2内存clerk 119

3.2.3内存对象 119

3.2.4内存缓存 120

3.2.5缓冲池 123

3.2.6故障排查 127

第4章 过程缓存 143

4.1过程缓存的架构 143

4.1.1缓存对象的类型 144

4.1.2过程缓存的结构 147

4.1.3过程缓存和内存 148

4.1.4非缓存计划和零成本计划 150

4.1.5计划的共享 151

4.1.6重编译 151

4.1.7参数化 152

4.1.8缓存查找如何工作 156

4.1.9缓存计划复用 157

4.1.10刷新过程缓存 158

4.2常见缓存相关问题及解决方案 158

4.2.1使用过程缓存来确定代价昂贵的查询 158

4.2.2参数截取 160

4.2.3较差的计划复用造成较高的编译时间 169

4.2.4由于过度的缓存查找时间导致的高CPU问题 173

4.2.5由过程缓存所引起的内存压力 173

4.3小结 175

第5章 查询处理器 176

5.1查询处理器基础 176

5.1.1编译-执行序列 176

5.1.2执行计划 178

5.1.3查询编译和计划选择 180

5.1.4特殊的优化方法及场景 182

5.2常见问题 185

5.2.1编译时间和参数化 185

5.2.2索引化 189

5.2.3基数和开销估算 191

5.3故障排查 192

5.3.1诊断 192

5.3.2控制 198

5.4最佳实践 208

5.4.1使用面向集合的编程模型 209

5.4.2提供约束和统计的信息 209

5.4.3注意复杂的构造 209

5.4.4尽可能地避免动态语言特性 210

5.5进阶阅读 210

第6章 服务器崩溃和其他致命故障 212

6.1基础知识 212

6.1.1 SQL Server 2005服务器恢复内幕 212

6.1.2 SQL Server 2005的增强特性 218

6.2致命错误与服务器恢复故障排查 221

6.2.1服务器启动故障排查 221

6.2.2对服务器致命错误进行故障排查 227

6.2.3服务器挂起问题的故障排查 255

第7章 Service Broker相关问题 259

7.1 Broker总览 260

7.1.1为什么要使用Service Broker 260

7.1.2 Service Broker的对象和术语 260

7.1.3内部架构 261

7.2主要的诊断工具和方法 261

7.2.1传输队列视图 261

7.2.2 SQL Profiler——ServiceBroker跟踪事件 262

7.2.3错误日志和NT事件日志 264

7.3 Broker故障排查实践 265

7.4其他Service Broker诊断工具 272

7.4.1视图 272

7.4.2 Perfmon 283

7.4.3 DBCC CHECKDB 285

7.5进阶阅读 286

第8章 SQLOS和调度问题 287

8.1 SQLOS架构 288

8.1.1内存和CPU结点 289

8.1.2调度器 290

8.1.3任务和worker 291

8.1.4 SQL Server和SQLOS 291

8.2配置和故障排查 291

8.2.1结点配置 291

8.2.2网络连接关联 292

8.2.3调度器 294

8.2.4任务与worker 296

8.2.5调度器之间的负载均衡任务 297

8.2.6 Max Worker Threads配置 298

8.2.7 Lightweight Pooling配置 299

8.2.8 Affinity Mask配置 300

8.2.9磁盘1/O完成处理 301

8.2.10抢占式I/O完成处理 302

8.2.11调度器监视器 303

8.2.12硬件配置 314

8.2.13专用管理员连接 316

8.3进阶阅读 318

第9章 tempdb相关问题 319

9.1 SQL Server 2005中有何改进 320

9.1.1 tempdb日志文件的IO动作少了 321

9.1.2 tempdb数据文件自动增长更快 321

9.1.3改进tempdb的并行访问的可扩展性 321

9.1.4改进tempdb中多个文件的可扩展性 322

9.2 tempdb空间是如何使用的 322

9.2.1什么是用户对象 323

9.2.2什么是内部对象 323

9.2.3什么是版本存储对象 324

9.3故障排查实践 325

9.3.1如果tempdb空间不足,你该怎么办 325

9.3.2什么是tempdb页面闩锁竞争 327

9.4小结 328

第10章 群集问题 329

10.1示例 329

10.2工具 331

10.3将性能调整到可接受的水平上 333

10.3.1添加结点 334

10.3.2为什么群集SQL Server实例发生故障转移 337

10.3.3为什么故障转移要花这么长时间 338

10.3.4故障转移之后没人可以连接 338

10.3.5添加磁盘 339

10.3.6替换磁盘 339

10.3.7转移数据库 339

10.4小结 339