《深入解析SQL Server 2008》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)德莱尼等著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115230799
  • 页数:548 页
图书介绍:本书内容包括SQL Server安装和升级说明、新增功能和向后兼容性介绍、如何完成常见任务、扩展功能(图形工具、命令提示实用工具、编程语言和应用程序编程接口)的使用,以及结合结合实际的数据库开发案例介绍应用中的高级技巧。

第1章 SQL Server 2008架构和配置 1

1.1 SQL Server版本 1

1.2 SQL Server元数据 2

1.2.1 兼容性视图 2

1.2.2 目录视图 3

1.2.3 其他元数据 4

1.3 SQL Server引擎组件 6

1.3.1 观察引擎行为 7

1.3.2 协议 8

1.3.3 关系引擎 9

1.3.4 存储引擎 10

1.4 SQLOS 13

1.5 计划程序 14

1.5.1 SQL Server工作线程 15

1.5.2 将计划程序绑定到CPU中 17

1.5.3 专用管理员连接(DAC) 20

1.6 内存 21

1.6.1 缓冲池与数据缓存 21

1.6.2 访问内存中的数据页 21

1.6.3 管理数据缓存中的页面 22

1.6.4 可用缓冲区列表和惰性编写器 22

1.6.5 检查点 23

1.6.6 管理其他缓存中的内存 24

1.6.7 调节内存大小 25

1.6.8 调节缓冲池大小 26

1.7 服务器资源调控器 30

1.7.1 资源调控器概述 30

1.7.2 资源调控器控制 37

1.7.3 资源调控器元数据 38

1.8 SQL Server 2008配置 39

1.8.1 使用SQL Server配置管理器 39

1.8.2 配置网络协议 39

1.8.3 默认的网络配置 39

1.8.4 管理服务 40

1.9 SQL Server系统配置 41

1.9.1 操作系统配置 41

1.9.2 跟踪标记 43

1.10 服务器配置设置 43

1.11 小结 52

第2章 更改跟踪、跟踪和扩展事件 53

2.1 基础知识:触发器和事件通知 53

2.1.1 运行时触发器行为 53

2.2 更改跟踪 54

2.2.1 更改跟踪配置 54

2.2.2 更改跟踪的运行时行为 57

2.3 跟踪和事件探查 60

2.3.1 SQL跟踪架构和术语 61

2.3.2 安全性和权限 62

2.3.3 Profiler入门 63

2.3.4 服务器端跟踪和收集 70

2.4 扩展事件 78

2.4.1 XE体系结构的组件 79

2.4.2 事件会话 86

2.4.3 扩展事件DDL和查询 88

2.5 小结 91

第3章 数据库和数据库文件 92

3.1 系统数据库 92

3.1.1 master 93

3.1.2 model 93

3.1.3 tempdb 93

3.1.4 资源数据库 93

3.1.5 msdb 94

3.2 样例数据库 94

3.2.1 AdventureWorks 94

3.2.2 pubs 95

3.2.3 Northwind 95

3.3 数据库文件 95

3.4 创建数据库 97

3.4.1 CREATE DATABASE例子 99

3.5 扩展或收缩数据库 99

3.5.1 自动文件扩展 100

3.5.2 手动文件扩展 100

3.5.3 快速文件初始化 100

3.5.4 自动收缩性 100

3.5.5 手动收缩 101

3.6 使用数据库文件组 102

3.6.1 默认文件组 102

3.6.2 FILEGROUP CREATION例子 103

3.6.3 文件流文件组 104

3.7 修改数据库 105

3.7.1 ALTER DATABASE例子 106

3.8 数据库剖析 107

3.8.1 空间分配 107

3.9 设置数据库选项 110

3.9.1 状态选项 112

3.9.2 游标选项 114

3.9.3 自动选项 115

3.9.4 SQL选项 115

3.9.5 数据库恢复选项 116

3.9.6 其他数据库选项 117

3.10 数据库快照 117

3.10.1 创建数据库快照 118

3.10.2 数据库快照使用的空间 119

3.10.3 管理快照 120

3.11 tempdb数据库 121

3.11.1 tempdb中的对象 121

3.11.2 tempdb中的优化 122

3.11.3 最佳实践 123

3.11.4 tempdb空间监视 124

3.12 数据库安全性 124

3.12.1 数据库访问 125

3.12.2 管理数据库安全性 126

3.12.3 数据与架构 127

3.12.4 主体与架构 127

3.12.5 默认架构 128

3.13 移动或复制数据库 128

3.13.1 分离和重新附加数据库 128

3.13.2 备份和还原数据库 130

3.13.3 移动系统数据库 130

3.13.4 移动master数据库 131

3.14 兼容性级别 131

3.15 小结 132

第4章 日志记录和恢复 133

4.1 事务日志基础 133

4.1.1 恢复阶段 134

4.1.2 读日志 137

4.2 更改日志大小 137

4.2.1 虚拟日志文件 137

4.2.2 观察虚拟日志文件 138

4.2.3 自动截断虚拟日志文件 141

4.2.4 维护可恢复日志 142

4.2.5 自动压缩日志 144

4.2.6 日志文件大小 145

4.3 备份和还原数据库 145

4.3.1 备份类型 145

4.3.2 恢复模型 146

4.3.3 选择备份类型 149

4.3.4 还原数据库 150

4.4 小结 154

第5章 表 155

5.1 创建表 155

5.1.1 命名表和列 156

5.1.2 保留关键字 157

5.1.3 分隔标识符 157

5.1.4 命名约定 158

5.1.5 数据类型 158

5.1.6 关于NULL 178

5.2 用户定义数据类型 180

5.3 IDENTITY属性 181

5.4 内部存储 184

5.4.1 sys.indexes目录视图 185

5.4.2 数据存储元数据 186

5.4.3 数据页 189

5.4.4 检查数据页 190

5.4.5 数据行的结构 193

5.4.6 查找一个物理页面 195

5.4.7 固定长度行的存储 197

5.4.8 可变长度行的存储 199

5.4.9 日期和时间数据的存储 204

5.4.10 sql_variant数据的存储 206

5.5 约束 209

5.5.1 约束名称和目录视图信息 210

5.5.2 视图和多行数据修改中出现的约束故障 211

5.6 修改表 212

5.6.1 更改数据类型 212

5.6.2 添加一个新列 213

5.6.3 添加、删除、禁用或启用约束 213

5.6.4 删除列 214

5.6.5 启用或禁用一个触发器 215

5.6.6 修改表的内部 215

5.7 堆修改内部 217

5.7.1 分配结构 217

5.7.2 插入行 218

5.7.3 删除行 219

5.7.4 更新行 221

5.8 小结 224

第6章 索引:内部和管理 225

6.1 概述 225

6.1.1 SQL Server索引B树 226

6.2 分析索引的工具 228

6.2.1 使用dm_db_index_physical_stats动态管理视图 228

6.2.2 使用DBCC ID 231

6.3 理解索引结构 233

6.3.1 聚集键的依赖关系 234

6.3.2 非聚集索引 236

6.3.3 约束和索引 236

6.4 索引创建选项 237

6.4.1 IGNORE_DUP_KEY 238

6.4.2 STATISTICS_NORECOM PUTE 238

6.4.3 MAXDOP 238

6.4.4 索引放置 238

6.4.5 约束和索引 239

6.5 物理索引结构 239

6.5.1 索引行格式 239

6.5.2 聚集索引结构 240

6.5.3 聚集索引的非叶级 241

6.5.4 分析聚集索引结构 241

6.5.5 非聚集索引结构 246

6.6 特殊索引结构 255

6.6.1 计算列上的索引和索引视图 255

6.6.2 全文索引 262

6.6.3 空间索引 262

6.6.4 XML索引 262

6.7 数据修改的内部 263

6.7.1 插入行 263

6.7.2 拆分页 264

6.7.3 删除行 267

6.7.4 更新行 272

6.7.5 表级数据修改与索引级数据修改 275

6.7.6 日志记录 276

6.7.7 锁定 276

6.7.8 碎片 276

6.8 管理索引结构 277

6.8.1 删除索引 277

6.8.2 ALTER INDEX 278

6.8.3 检测碎片 279

6.8.4 删除碎片 280

6.8.5 重建索引 282

6.9 小结 284

第7章 特殊存储 285

7.1 大型对象存储 285

7.1.1 长度受限的大型对象数据(行溢出数据) 285

7.1.2 不限长度大型对象数据 289

7.1.3 最大长度数据的存储 294

7.2 文件流数据 295

7.2.1 为SQL Server启用文件流数据 295

7.2.2 创建一个启用文件流的数据库 296

7.2.3 创建一张表存储文件流数据 297

7.2.4 操纵文件流数据 298

7.2.5 文件流数据的元数据 302

7.2.6 文件流数据性能方面的考虑 304

7.3 稀疏列 305

7.3.1 稀疏列的管理 305

7.3.2 列集和稀疏列操作 307

7.3.3 物理存储 309

7.3.4 元数据 311

7.3.5 利用稀疏列节省存储空间 312

7.4 数据压缩 315

7.4.1 Vardecimal 315

7.4.2 行压缩 315

7.4.3 页压缩 322

7.5 表和索引分区 329

7.5.1 分区函数和分区方案 330

7.5.2 分区的元数据 331

7.5.3 分区的滑动窗口优势 334

7.6 小结 336

第8章 查询优化器 337

8.1 概述 337

8.1.1 树格式 337

8.2 什么是优化 338

8.3 查询优化器如何研究查询计划 339

8.3.1 规则 339

8.3.2 属性 339

8.3.3 替代项的存储——“备注” 341

8.3.4 运算符 341

8.4 优化器架构 346

8.4.1 优化之前 347

8.4.2 简化 347

8.4.3 琐碎计划/自动参数化 347

8.4.4 限制 348

8.4.5 备注——有效地探索多项计划 349

8.5 统计信息、基数估计和开销 350

8.5.1 统计信息设计 351

8.5.2 密度/频度信息 353

8.5.3 筛选的统计信息 355

8.5.4 字符串统计信息 356

8.5.5 基数估计细节 356

8.5.6 限制 359

8.5.7 成本计算 360

8.6 索引选择 361

8.6.1 筛选索引 363

8.6.2 索引视图 365

8.7 分区表 369

8.7.1 分区对齐索引视图 372

8.8 数据仓库 372

8.9 更新 372

8.9.1 Halloween保护 375

8.9.2 拆分/排序/折叠 375

8.9.3 合并 377

8.9.4 大范围更新计划 379

8.9.5 稀疏列更新 381

8.9.6 分区更新 381

8.9.7 锁定 384

8.10 分布式查询 385

8.11 扩展的索引 387

8.11.1 全文索引 387

8.11.2 XML索引 387

8.11.3 空间索引 388

8.12 计划提示 389

8.12.1 调试计划问题 389

8.12.2 {HASH|ORDER}GROUP 391

8.12.3 {MERGE|HASH|CONCAT}UNION 391

8.12.4 FORCE ORDER,{LOOP|MERGE|HASH}JOIN 391

8.12.5 INDEX=<indexname>|<indexid> 392

8.12.6 FORCESEEK 392

8.12.7 FAST<number_rows> 393

8.12.8 MAXDOP<N> 393

8.12.9 OPTIMIZE FOR 393

8.12.10 PARAMETRIZATION{SIMPLE|FORCED} 395

8.12.11 NOEXPAND 395

8.12.12 USE PLAN 395

8.13 小结 397

第9章 计划缓存和重新编译 398

9.1 计划缓存 398

9.1.1 计划缓存元数据 398

9.1.2 清除计划缓存 399

9.2 缓存机制 399

9.2.1 即席查询缓存 400

9.2.2 即席工作负荷优化 402

9.2.3 简单参数化 404

9.2.4 已准备查询 408

9.2.5 已编译对象 410

9.2.6 重新编译的原因 412

9.3 计划缓存内部 420

9.3.1 缓存存储 420

9.3.2 编译计划 421

9.3.3 执行上下文 422

9.3.4 计划缓存元数据 422

9.3.5 句柄 422

9.3.6 sys.dm_exec_sql_text 423

9.3.7 sys.dm_exec_query_plan 424

9.3.8 sys.dm_exec_text_query_plan 424

9.3.9 sys.dm_exec_cached_plans 425

9.3.10 sys.dm_exec_cached_plan_dependent_objects 425

9.3.11 sys.dm_exec_requests 425

9.3.12 sys.dm_exex_query_stats 426

9.3.13 缓存大小管理 426

9.3.14 缓存项的成本 429

9.4 计划缓存中的对象:概况 429

9.5 缓存中的多个计划 431

9.6 何时使用存储过程和其他缓存机制 432

9.7 计划缓存问题故障排除 432

9.7.1 等待统计信息表明存在计划缓存问题 432

9.7.2 其他缓存问题 434

9.7.3 处理编译和重新编译问题 434

9.7.4 计划指南和优化提示 435

9.8 小结 444

第10章 事务和并发性 445

10.1 并发模型 445

10.1.1 悲观并发 445

10.1.2 乐观并发 445

10.2 事务处理 446

10.2.1 ACID属性 446

10.2.2 事务依赖性 447

10.2.3 隔离级别 448

10.3 锁定 451

10.3.1 锁定基础 451

10.3.2 旋转锁 452

10.3.3 用户数据的锁类型 452

10.3.4 锁模式 452

10.3.5 锁粒度 455

10.3.6 锁的持续时间 460

10.3.7 锁的所有权 460

10.3.8 查看锁 461

10.3.9 锁定示例 463

10.4 锁兼容性 468

10.5 锁定内部架构 469

10.5.1 锁分区 470

10.5.2 锁块 471

10.5.3 锁所有者块 472

10.5.4 syslockinfo表 472

10.6 行级别锁与页级别锁 475

10.6.1 锁升级 475

10.6.2 死锁 477

10.7 行版本控制 480

10.7.1 行版本控制概述 480

10.7.2 行版本控制细节 481

10.7.3 基于快照的隔离级别 481

10.7.4 选择并发模型 496

10.8 控制锁定 497

10.8.1 锁提示 497

10.8.2 设置锁超时 499

10.9 小结 500

第11章 DBCC揭秘 501

11.1 获得数据库的一致性视图 502

11.1.1 获得一致性视图 502

11.2 有效地处理数据库 504

11.2.1 事实生成 505

11.2.2 使用查询处理器 506

11.2.3 批处理 508

11.2.4 读取要处理的页 509

11.2.5 并行性 509

11.3 早期的系统目录一致性检查 511

11.4 分配一致性检查 512

11.4.1 收集分配事实 512

11.4.2 检查分配事实 513

11.5 按表进行逻辑一致性检查 514

11.5.1 元数据一致性检查 515

11.5.2 页审核 516

11.5.3 数据和索引页处理 518

11.5.4 列处理 519

11.5.5 文本页处理 522

11.5.6 跨页一致性检查 523

11.6 跨表一致性检查 532

11.6.1 Service Broker一致性检查 532

11.6.2 跨目录一致性检查 533

11.6.3 索引视图一致性检查 533

11.6.4 XML索引一致性检查 534

11.6.5 空间索引一致性检查 534

11.7 DBCC CHECKDB输出 535

11.7.1 标准输出 535

11.7.2 SQL Server错误日志输出 537

11.7.3 应用程序事件日志输出 538

11.7.4 进度报告输出 538

11.8 DBCC CHECKDB选项 539

11.8.1 NOINDEX 540

11.8.2 修复选项 540

11.8.3 ALL_ERRORMSGS 540

11.8.4 EXTENDED_LOGICAL_CHECKS 541

11.8.5 NO_INFOMSGS 541

11.8.6 TABLOCK 541

11.8.7 ESTIMATEONLY 541

11.8.8 PHYSICAL_ONLY 542

11.8.9 DATA_PURITY 542

11.9 数据库修复 542

11.9.1 修复机制 543

11.9.2 紧急模式修复 544

11.9.3 哪些数据可以由修复删除 545

11.10 除DBCC CHECKDB之外的一致性检查命令 545

11.10.1 DBCC CHECKALLOC 546

11.10.2 DBCC CHECKTABLE 547

11.10.3 DBCC CHECKFILEGR OUP 547

11.10.4 DBCC CHECKCATALOG 547

11.10.5 DBCC CHECKIDENT 548

11.10.6 DBCC CHECKCONSTR-AINTS 548

11.11 小结 548