《Microsoft SQL Server 2005技术内幕 查询、调整和优化》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:卡伦·德莱尼编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121089718
  • 页数:412 页
图书介绍:本书详细介绍了如何使数据查询更加高能高效,同时使现有资源最大化的方法。本书还包含了大量的代码示例和表示例以帮助数据库开发人员和管理员理解复杂的逻辑并掌握查询调整和优化。通过阅读本书,数据库开发人员将能够加深对查询优化背景的理解和应用,并开发和调整优化出反应速度更快的数据库。

第1章 性能故障检修方法 1

1.1 影响性能的因素 2

1.1.1 应用程序的体系结构 2

1.1.2 应用程序设计 4

1.1.3 事务与隔离级别 6

1.1.4 Transact-SQL代码 10

1.1.5 硬件资源 11

1.1.6 SQL Server配置 12

1.2 故障排查概要 14

1.2.1 建立一个工作负荷的基线 15

1.2.2 监视工作负荷 18

1.2.3 检测、隔离及常见性能故障的排查 20

1.3 小结 55

第2章 跟踪和性能分析 57

2.1 SQL跟踪体系结构及术语 57

2.1.1 内部跟踪组件 58

2.1.2 跟踪I/O提供者 58

2.2 安全和权限 59

2.2.1 修改跟踪(ALTER TRACE)权限 60

2.2.2 保护敏感事务数据 60

2.3 入门:性能分析器 61

2.3.1 性能分析器的基本原理 61

2.3.2 保存和重演跟踪 64

2.4 服务器端跟踪和收集 69

2.4.1 编辑服务器端跟踪 70

2.4.2 查询服务器端跟踪元数据 73

2.4.3 由服务器端跟踪检索数据 76

2.4.4 停止和关闭跟踪 76

2.4.5 审查行集提供者 77

2.5 跟踪的故障排查及分析 79

2.5.1 常用的SQL跟踪事件类 80

2.5.2 性能调校 82

2.5.3 识别异常 88

2.5.4 调试死锁 90

2.5.5 存储过程调试 94

2.6 跟踪考虑及设计 96

2.6.1 SQL Server性能分析器问题 97

2.6.2 降低跟踪开销 98

2.6.3 最大文件容量、滚动和数据收集 99

2.7 审核SQL Server的内置跟踪 100

2.7.1 默认跟踪 100

2.7.2 黑盒跟踪 100

2.7.3 C2和常见标准审核 102

2.8 小结 102

第3章 查询执行 103

3.1 查询处理及执行概述 103

3.1.1 迭代器 103

3.1.2 迭代器属性 105

3.2 阅读查询计划 107

3.3.1 查询计划选项 107

3.3 分析计划 115

3.3.1 扫描及查找 116

3.3.2 可查找的谓词及其覆盖的列 118

3.3.3 Bookmark Lookup 121

3.3.4 连接 124

3.3.5 聚合 137

3.3.6 联合 149

3.3.7 高级索引运算 155

3.3.8 子查询 164

3.3.9 并行化 179

3.3.10 插入、更新和删除 197

3.4 小结 198

第4章 关于查询性能的疑难解决 199

4.1 编译和优化 199

4.1.1 编译 200

4.1.2 优化 200

4.1.3 查询优化器是如何工作的 202

4.2 检测查询计划中的问题 218

4.2.1 基数估计错误 218

4.2.2 杂项警告 219

4.3 监测查询性能 221

4.3.1 时间统计 225

4.4 查询优化 225

4.4.1 重写查询 225

4.4.2 模式改进 227

4.4.3 统计值管理 228

4.4.4 创建有用的索引 231

4.4.5 SQL Server 2005中的优化Hint 239

4.5 查询处理最佳实践 273

4.5.1 使用面向集合的编程 273

4.5.2 为优化器提供约束和统计信息 273

4.5.3 避免不必要的复杂性 274

4.5.4 谨慎使用动态SQL 274

4.6 小结 275

第5章 计划缓存和重编译 277

5.1 计划缓存 277

5.1.1 计划缓存元数据 278

5.1.2 清理计划缓存 278

5.2 缓存原理 279

5.2.1 Adhoc查询缓存 280

5.2.2 自动参数化 282

5.2.3 预定义查询 287

5.2.4 被编译对象 289

5.2.5 重编译的原因 292

5.3 计划缓存内部 300

5.3.1 缓存存储 301

5.3.2 已编译的计划 302

5.3.3 执行计划 302

5.3.4 计划缓存元数据 303

5.3.5 句柄 303

5.3.6 sys.dm_exec_sql_text 304

5.3.7 sys.dm_exec_cached_plans 305

5.3.8 sys.dm_exec_cached_plan_dependent_objects 306

5.3.9 sys.dm_exec_requests 306

5.3.10 sys.dm_exec_query_stats 307

5.3.11 缓存大小管理 307

5.3.12 本地内存压力 309

5.3.13 缓存个数开销 310

5.4 计划缓存中的对象:大图片 311

5.5 缓存中的多计划 313

5.6 何时使用存储过程和其他缓存机制 314

5.7 解决计划缓存问题 315

5.7.1 说明计划缓存问题的等待统计信息 315

5.7.2 其他缓存问题 317

5.7.3 解决缓存和重编译问题小结 318

5.7.4 计划向导和优化提示 320

5.8 小结 330

第6章 并发问题 333

6.1 解决并发问题的新工具 334

6.1.1 新阻塞检测工具:sys.dm_os_waiting_tasks 335

6.1.2 新阻塞决议工具:基于行版本控制的隔离级别 335

6.1.3 并发问题的类型 335

6.2 解决锁的问题 336

6.2.1 解决锁内存问题 336

6.2.2 锁超时 337

6.2.3 锁升级 337

6.3 解决阻塞问题 340

6.3.1 检测阻塞问题 342

6.3.2 寻找阻塞的原因 349

6.3.3 解决阻塞问题 351

6.4 解决死锁问题 354

6.4.1 死锁的类型 355

6.4.2 检测死锁 359

6.4.3 判断死锁原因 360

6.4.4 解决死锁 364

6.5 解决“基于行版本和快照隔离级别”的问题 369

6.5.1 基于快照在隔离级别中的共享锁问题 370

6.5.2 潜在SNAPSHOT隔离级别冲突 378

6.5.3 监视快照隔离选项 385

6.5.4 解决快照隔离问题 389

6.5.5 快照隔离的恰当使用 391

6.6 小结 393

参考资源 395

索引 397