SQL Server 2005 Performance Tuning性能调校

SQL Server 2005 Performance Tuning性能调校
作 者: 胡百敬 姚巧玫 刘承
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Server
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《SQL Server 2005 Performance Tuning性能调校》作者简介

内容简介

数据库系统经年累月地运行,日久便可能面临数据累积量大、使用人数增加、应用面扩增、当初系统设计有局限等问题,导致性能变差,这就需要调试人员进行性能调校。然而,他们进行性能调校的能力是需要培养的,一般来说,需要的不只是数据库方面的知识和经验,还要对商业领域知识、系统架构设计、应用程序撰写,以及对操作系统、网络环境架设、各种监控工具程序等都有一定的了解,才能在复杂的系统中,找到症结所在,完成调校任务。本书正是为满足上述需要而编写的,适合SQL Server DBA阅读,书中提供了性能调校和错误处理的建议与提示,并通过实际案例,协助DBA建立正确的观念、充分了解系统架构,进而在阅读中传承功力,并打通任督二脉,领略其中运用之奥妙。

图书目录

第1章 性能调校概观 1

1.1 什么是性能调校 4

1.2 建立性能的基线 5

1.3 性能调校的步骤——DETECT 8

1.3.1 各阶段重点说明 9

1.3.2 练习DETECT方法 12

1.3.3 二分查找 14

1.3.4 定义瓶颈 15

1.4 结语 16

第2章 SQL Server架构简介 19

2.1 SQL Server运行架构 20

2.1.1 SQL Server的访问架构 24

2.1.2 SQL Server 的核心引擎 27

2.1.3 SQL Server动态自我管理 30

2.2 各项硬件使用剖析 32

2.2.1 内存管理 33

2.2.2 中央处理器 50

2.2.3 磁盘子系统 57

2.3 仿真系统运行 63

2.4 结语 65

第3章 性能调校相关工具程序 67

3.1 综观的工具 71

3.1.1 SQLDiag 公用程序概述 71

3.1.2 观察影响效率的内容 96

3.1.3 性能监视器 101

3.2 进一步的分析工具 111

3.2.1 Management Studio 111

3.2.2 SQL Profiler概述 117

3.3 针对特定对象的工具 135

3.3.1 Database Engine Tuning Advisor 135

3.3.2 查询编辑器 138

3.3.3 网络监视器 141

3.3.4 DBCC 146

3.3.5 跟踪标记 152

3.4 Performance Dashboard Reports 155

3.4.1 SQL Server 2005 Performance Dashboard Reports 155

3.4.2 Performance Dashboard Reports 主要的分析途径 161

3.4.3 Performance Dashboard Reports 所提供的各式报表 164

3.4.4 Blocking 报表 166

3.4.5 General Wait 报表 166

3.4.6 其他细节报表 168

3.4.7 扩展Performance Dashboard Reports 报表功能 169

3.5 压力测试工具程序 174

3.5.1 Microsoft Application Center Test 175

3.5.2 Load Simulator 178

3.5.3 自行编写压力测试程序 181

3.6 结语 184

第4章 动态管理视图和函数 185

4.1 动态管理视图和函数简介 186

4.2 动态管理视图和函数的使用范例 188

4.3 观察各种资源的使用情况 196

4.3.1 内存缓存区 196

4.3.2 CPU 的使用 198

4.3.3 执行计划重用 202

4.3.4 锁定与被锁定的关系 203

4.3.5 I/O 的使用 206

4.3.6 tempdb 系统数据库的使用 208

第5章 数据库设计 213

5.1 数据库设计 214

5.2 使用分割数据表切割和平行运行 222

5.2.1 分割数据表的使用范例 224

5.2.2 分割数据表与大量数据加载的集成 234

5.3 TEMPDB 系统数据库的规划 235

5.3.1 tempdb 的用途 235

5.3.2 SQL Server 2005 针对tempdb 所做的改良 237

5.3.3 监控tempdb 的使用 238

5.3.4 性能考虑 240

5.4 备份与还原 242

5.4.1 数据库恢复模式 242

5.4.2 数据库恢复模式之间的切换 246

5.5 大量数据加载 247

5.6 设计磁盘子系统 251

5.7 结语 257

第6章 索引 259

6.1 索引概观 261

6.1.1 建立索引与相关的属性设置 262

6.1.2 平行建立索引 269

6.1.3 在线索引 271

6.1.4 集群索引与非集群索引 274

6.1.5 排序 278

6.1.6 与索引相关的系统视图 282

6.1.7 是否值得建索引 295

6.2 索引维护 304

6.2.1 观察数据不连续 304

6.2.2 使用动态管理函数观察数据不连续 308

6.2.3 重组、重建与停用索引 310

6.3 优化执行计划的各阶段 312

6.4 统计 314

6.4.1 更新统计 321

6.5 覆盖索引 326

6.6 在视图与计算字段上建立索引 331

6.6.1 如何有效地建立Indexed View 334

6.6.2 Indexed View的适用范围 340

6.7 单一查询使用多个索引 341

6.8 结语 342

第7章 T-SQL语法 343

7.1 有效地查询参数 344

7.1.1 不要对数据域做运算 345

7.1.2 勿负向查询 347

7.1.3 勿在Where 子句对字段使用函数 348

7.1.4 小心使用OR 操作 350

7.2 连接 352

7.2.1 连接 352

7.2.2 Join 语句 353

7.2.3 嵌套循环连接 357

7.2.4 合并连接 357

7.2.5 哈希连接 358

7.2.6 连接与子查询 360

7.3 其他注意事项 363

7.3.1 INSERT、DELETE 和UPDATE 365

7.3.2 子查询 366

7.3.3 搭配EXISTS与IN的子查询 368

7.3.4 通过连接更新数据 370

7.3.5 查询提示 374

7.4 新的DML语句 379

7.4.1 Common Table Expression 379

7.4.2 获取排名或顺序的函数 388

7.5 SQL Server 提供的公共变量 395

7.6 结语 404

第8章 重用执行计划 405

8.1 编译与高速缓存执行计划 406

8.2 影响计划重用的因素 414

8.3 执行计划与Execution Context 419

8.4 观察执行计划的使用 420

8.5 需要重新编译计划 423

8.5.1 不同参数使用相同执行计划可能引发的问题 426

8.5.2 以提示影响查询引擎所建立的执行计划 428

第9章 交易与锁定管理 435

9.1 锁定 436

9.1.1 锁定的种类及范围 436

9.1.2 锁定的兼容性 440

9.1.3 可锁定的资源 441

9.1.4 锁定与交易隔离等级 443

9.1.5 动态的锁定管理 457

9.1.6 锁定逾时 458

9.2 数据行版本控制 460

9.2.1 数据行版本控制基本运行行为 461

9.2.2 “数据行版本控制”使用时机 469

9.2.3 “数据行版本控制”TEMPDB 数据库资源管理 470

9.3 交易 472

9.3.1 交易行为概述 472

9.3.2 批处理与交易 475

9.3.3 嵌套交易 480

9.3.4 存储点 485

9.3.5 锁定提示 488

9.3.6 使用交易之注意事项 492

9.4 死锁状况 494

9.4.1 发生Cycle 死锁 494

9.4.2 发生Conversion 死锁 495

9.4.3 分布式死锁 496

9.4.4 SQL Server 无法侦测的死锁实例 498

9.5 观察与分析系统的锁定状况 502

9.5.1 观察SQL Server 当前执行的状况 503

9.5.2 观察与分析系统的锁定状况 509

9.6 锁定的原因及相关处理 512

9.6.1 费时的查询或交易 512

9.6.2 不正确的交易或交易隔离等级设置 514

9.6.3 交易未正确处理 514

9.6.4 未检测到的分布式死锁 515

9.6.5 锁定数据粒度(Lock Granularity)太高或太低 516

9.6.6 Compile Blocking 516

9.6.7 基本原则 517

9.7 结语 519

第10章 前端应用程序设计 521

10.1 程序架构 522

10.2 用户端与SQL服务器的交互 524

10.2.1 用户端访问SQL Server 的模式 527

10.2.2 准备再执行的模式 531

10.2.3 测试各种执行SQL 语句方式的性能 535

10.2.4 Connection Pooling 536

10.3 多数据结果集 545

10.3.1 SQL Server 数据访问与结果集 546

10.3.2 工作阶段内容信息与MARS 546

10.3.3 前端程序经由MARS访问 548

10.3.4 MARS的执行方式 554

10.3.5 同时读取与更新数据 556

10.4 光标 561

10.4.1 光标概观 562

10.4.2 默认结果集 564

10.4.3 服务器端光标 566

10.4.4 使用光标的T-SQL语句 571

10.4.5 与光标相关的系统存储过程 583

10.4.6 通过前端程序访问四种类型的光标 585

10.4.7 异步使用光标 589

10.4.8 使用光标时应注意的事项 592

10.5 数据高速缓存 605

10.5.1 使用高速缓存的原因 605

10.5.2 .NET Framework 与Microsoft patterns & Practices Enterprise Library

提供的高速缓存 608

10.5.3 访问Caching Application Block 612

10.6 应用程序错误处理 620

第11章 Visual Studio 2005 Team Edition For Database Professional 625

11.1 DB Pro 所支持的功能 626

11.2 建立数据库项目并控制对象的SQL Script 629

11.2.1 建立项目 630

11.2.2 将数据库定义加入源代码版本控制 634

11.3 建立数据库内新对象 636

11.3.1 部署项目定义到数据库 639

11.3.2 依项目内容更新数据库Schema 定义 643

11.4 修改数据库内对象名称 645

11.5 测试 647

11.5.1 产生测试数据 647

11.5.2 数据库的单元测试 651

11.5.3 数据库单元测试的方面 652

11.5.4 以DB Pro 设计与执行单元测试 652

11.5.5 通过测试条件定义单元测试的结果是成功或失败 661

11.5.6 负载测试 666

11.6 Service Release 1 与Power Tools 的功能 675

11.6.1 Power Tools 为VSTS Database Pro 新增的功能 681

附录A 数据库对象的命名惯例与访问标准 693

A.1 建立命名规则 694

A.2 数据库使用惯例 697

附录B 数据库服务器的容量规划 701

附录C 应用程序架构范例 707