《SQL Server2005Performance Tuning性能调校》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:胡百敬,姚巧玫,刘承修著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121062964
  • 页数:715 页
图书介绍:数据库系统经年累月,可能面临数据累积、使用人数增加、应用面扩增、当初系统设计不良等原因,导致性能变差。然而,性能调校的能力是需要培养的,一般来说,需要的不单只是数据库的经验,还要对商业领域知识、系统架构设计、应用程序撰写,以及对操作系统、网络环境架设、各种监控工具程序的了解,如此才能在复杂的系统中,找到症结所在并有效解决。本书适合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.1SQL Server的访问架构 24

2.1.2SQL Server的核心引擎 27

2.1.3SQL 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.1SQLDiag公用程序概述 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.5SQL 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 Libra提供的高速缓存 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.6Service Release l与Power Tools的功能 675

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

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

A.1建立命名规则 694

A.2数据库使用惯例 697

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

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