第1章 SQL Server 2008简介 1
1.1 SQL Server简史 1
1.1.1 起源 1
1.1.2 数据库的发展 1
1.1.3 Microsoft独立开发 1
1.1.4 面向大众的BI 2
1.1.5 2008以及未来 2
1.2 什么是SQL Server 2008 3
1.2.1 数据库引擎 3
1.2.2 Integration Services 5
1.2.3 Analysis Services 5
1.2.4 Reporting Services 5
1.2.5 Service Broker 6
1.2.6 数据层Web服务 6
1.2.7 复制服务 6
1.2.8 多实例 6
1.2.9 数据库邮件 7
1.2.10 有关通知服务的一个提示 7
1.3 SQL Server 2008版本 7
1.3.1 SQL Server Compact 3.5 SP1版本 8
1.3.2 SQL Server 2008速成版 8
1.3.3 SQL Server 2008网络版 9
1.3.4 SQL Server 2008工作组版 9
1.3.5 SQL Server 2008标准版 10
1.3.6 SQL Server 2008企业版 10
1.4 SQL Server 2008的体系结构 10
1.4.1 SQL Server 2008通信 11
1.4.2 SQL Server 2008服务 12
1.5 SQL Server 2008数据库对象 15
1.5.1 服务器 15
1.5.2 数据库 15
1.5.3 架构 16
1.5.4 对象名称 16
1.6 SQL Server 2008数据库 17
1.6.1 系统数据库 17
1.6.2 用户数据库 19
1.6.3 分发数据库 19
1.7 SQL Server 2008数据库存储 20
1.7.1 数据文件和文件组 20
1.7.2 日志文件 21
1.8 SQL Server安全性 21
1.8.1 Windows身份验证模式 21
1.8.2 SQL Server和Windows身份验证模式(混合模式) 21
1.9 小结 22
第2章 安装SQL Server 2008 23
2.1 SQL Server安装计划 23
2.1.1 硬件的考虑事项 24
2.1.2 处理器的考虑事项 24
2.1.3 内存的考虑事项 25
2.1.4 存储的考虑事项 25
2.1.5 虚拟化的考虑事项 29
2.1.6 软件要求 30
2.2 SQL Server安装中心 31
2.2.1 安装程序支持规则(针对安装程序支持文件) 31
2.2.2 安装程序支持规则(针对安装) 32
2.2.3 功能选择 34
2.2.4 安装到一个Windows群集 41
2.2.5 配置虚拟服务器名称 42
2.2.6 示例数据库 44
2.3 安装回顾 44
2.4 小结 45
第3章 SQL Server 2008工具 47
3.1 SQL Server Management Studio 47
3.1.1 工具窗口 49
3.1.2 工具栏 60
3.1.3 SQL Server Management Studio配置 73
3.2 日志文件查看器 79
3.3 SQL Server Business Intelligence Development Studio 80
3.4 SQL Server Profiler 82
3.4.1 SQL Server跟踪 82
3.4.2 跟踪属性 82
3.5 数据库引擎优化顾问 85
3.5.1 “常规”选项卡 86
3.5.2 “优化选项”选项卡 86
3.6 SQL Server配置管理器 87
3.7 Reporting Services配置管理器 88
3.8 命令行工具 89
3.8.1 SQLCMD 89
3.8.2 大容量复制程序 91
3.8.3 PowerShell 94
3.9 小结 96
第4章 SQL Server 2008存储体系结构 97
4.1 Resource数据库 97
4.2 SQL Server数据库物理结构 99
4.2.1 物理存储数据类型 99
4.2.2 FILESTREAM数据 104
4.2.3 其他数据类型 104
4.2.4 SQL Server数据库文件 105
4.2.5 数据文件 105
4.2.6 事务日志 108
4.3 小结 112
第5章 SQL Server 2008数据库 113
5.1 系统数据库 113
5.2 用户数据库 113
5.3 数据库规划 113
5.4 创建数据库 115
5.4.1 开始 115
5.4.2 创建一个新数据库 116
5.4.3 架构 134
5.4.4 表 137
5.4.5 索引 146
5.4.6 强制数据完整性 160
5.5 数据库关系图 168
5.6 视图 168
5.7 同义词 169
5.8 编程对象 170
5.8.1 存储过程 170
5.8.2 函数 171
5.8.3 触发器 171
5.8.4 程序集 173
5.8.5 类型 174
5.8.6 默认值 176
5.8.7 规则 176
5.9 小结 176
第6章 SQL Server 2008安全性 177
6.1 SQL Server身份验证模式 177
6.1.1 通过Management Studio更改身份验证模式 178
6.1.2 使用xp_instance_regwrite扩展存储过程 178
6.2 主体 179
6.2.1 登录名 180
6.2.2 凭据 185
6.2.3 服务器角色 187
6.2.4 数据库用户 188
6.2.5 固定数据库角色 193
6.3 权限 198
6.3.1 服务器权限 202
6.3.2 数据库作用域权限 207
6.3.3 架构作用域权限 209
6.3.4 使用SQL Server Management Studio管理权限 210
6.4 SQL Server加密 213
6.4.1 可扩展的密钥管理 215
6.4.2 加密工具 216
6.5 最佳实践 226
6.6 小结 227
第7章 配置SQL Server网络通信 229
7.1 SQL Server 2008网络协议 229
7.1.1 Shared Memory协议 229
7.1.2 Named Pipes协议 230
7.1.3 TCP/IP 230
7.1.4 Virtual Interface Adapter(VIA) 231
7.2 SQL Native Client配置 232
7.3 SQL Server端点 233
7.3.1 默认TSQL端点 233
7.3.2 TSQL TCP端点 236
7.3.3 数据库镜像端点 237
7.3.4 SOAP端点 239
7.3.5 Service Broker端点 243
7.3.6 保护端点 244
7.4 小结 248
第8章 自动化管理任务 249
8.1 基于策略的管理 249
8.1.1 目标 250
8.1.2 方面 250
8.1.3 条件 251
8.1.4 策略 251
8.1.5 策略类别 252
8.1.6 有效策略 253
8.2 中央管理服务器 255
8.3 数据库邮件 257
8.3.1 工作原理 257
8.3.2 如何配置数据库邮件 258
8.3.3 配置数据库邮件选项 262
8.3.4 管理配置文件和帐户 262
8.3.5 删除邮件对象的指导原则 271
8.3.6 发送邮件 271
8.3.7 管理消息 275
8.4 事件通知 276
8.5 SQL Server代理 277
8.5.1 配置SQL Server代理服务 277
8.5.2 SQL Server代理安全性 282
8.5.3 创建作业 282
8.5.4 创建计划 292
8.5.5 创建操作员 298
8.5.6 创建警报 301
8.5.7 创建代理 307
8.5.8 多服务器作业 310
8.6 维护计划 311
8.6.1 维护计划向导 311
8.6.2 维护计划设计器 312
8.7 最佳实践 313
8.8 小结 314
第9章 灾难预防和恢复 315
9.1 准备SmallWorks数据库 315
9.2 数据库恢复模式 317
9.2.1 完整恢复模式 317
9.2.2 大容量日志恢复模式 317
9.2.3 简单恢复模式 318
9.3 SQL Server 2008数据库备份 318
9.4 SQL Server 2008备份类型 321
9.4.1 完整备份 321
9.4.2 差异备份 321
9.4.3 文件/文件组备份 321
9.4.4 事务日志备份 322
9.4.5 部分备份 323
9.4.6 仅复制备份 323
9.5 备份选项 323
9.5.1 备份条带 323
9.5.2 镜像备份 324
9.5.3 压缩备份 324
9.5.4 WITH选项 324
9.6 备份策略 326
9.6.1 仅完整备份 326
9.6.2 完整备份+差异备份 326
9.6.3 完整备份+事务日志备份 327
9.6.4 完整备份+差异备份+事务日志备份 327
9.6.5 文件/文件组备份 328
9.6.6 文件组备份+差异备份 328
9.6.7 部分备份 329
9.6.8 备份小结 329
9.7 还原数据库 329
9.7.1 还原过程 329
9.7.2 延迟恢复 330
9.8 RESTORE命令 330
9.8.1 RESTORE DATABASE database_name 331
9.8.2 FROM选项 332
9.8.3 WITH子句 333
9.8.4 数据库还原准备 335
9.8.5 还原用户数据库 337
9.8.6 恢复系统数据库 342
9.8.7 数据库还原小结 345
9.9 数据库快照 345
9.9.1 数据库快照限制 347
9.9.2 灾难恢复和数据库快照 347
9.10 小结 349
第10章 监视SQL Server性能 351
10.1 性能监视 351
10.1.1 性能监视策略 352
10.1.2 创建一个性能基准 352
10.2 用于监视的工具和技术 358
10.2.1 日志文件查看器 359
10.2.2 活动监视器 360
10.2.3 系统存储过程 362
10.2.4 使用Profiler 367
10.2.5 监视文件 373
10.3 审核 376
10.3.1 SQL Server审核 376
10.3.2 登录审核 383
10.3.3 C2审核模式 384
10.3.4 安全审核事件类别 385
10.3.5 SQL跟踪 387
10.4 跟踪数据更改 388
10.4.1 变更数据捕获 388
10.4.2 更改跟踪 395
10.5 数据收集 398
10.5.1 术语 399
10.5.2 体系结构与处理 399
10.5.3 配置数据收集 400
10.5.4 数据收集器类型 403
10.5.5 数据收集组 403
10.5.6 错误处理 407
10.5.7 报表 407
10.5.8 管理数据仓库 408
10.6 监视数据库修改 409
10.7 小结 413
第11章 优化SQL Server 415
11.1 硬件优化 415
11.1.1 选择CPU 416
11.1.2 超线程 417
11.1.3 内存 417
11.1.4 存储选项 417
11.1.5 网络设计 419
11.1.6 虚拟化SQL Server 419
11.2 设计考虑 419
11.2.1 数据库恢复模式 420
11.2.2 设计有效率的表 421
11.2.3 声明性引用完整性 426
11.2.4 约束与触发器 428
11.2.5 确定索引对象 428
11.2.6 索引视图和筛选索引 433
11.2.7 最小化阻塞 436
11.2.8 超时的潜在危险 437
11.3 查询优化 438
11.3.1 执行计划 439
11.3.2 更新统计信息 442
11.3.3 管理索引 443
11.3.4 查询优化器提示 448
11.3.5 计划指南 450
11.3.6 数据库引擎优化顾问 455
11.4 T-SQL优化技巧 462
11.4.1 限制结果集 463
11.4.2 ANSI风格的联接语法 466
11.4.3 处理NULL值 467
11.4.4 游标的替代选择 469
11.4.5 合并联接 470
11.4.6 分组集 472
11.4.7 非重复值聚合 473
11.4.8 如何查询表中的记录数 474
11.4.9 临时表与表变量 475
11.5 资源调控器 476
11.5.1 配置资源调控器 477
11.5.2 监视资源调控器 480
11.6 小结 486
第12章 SQL Server高可用性 487
12.1 高可用性简介 487
12.2 故障转移群集 488
12.2.1 Windows群集——快速入门 488
12.2.2 群集组件 490
12.2.3 主动/被动群集 490
12.2.4 主动/主动群集 490
12.2.5 考虑群集 491
12.3 日志传送 491
12.3.1 准备日志传送 491
12.3.2 使用SQL Server Management Studio配置日志传送 492
12.3.3 使用Transact-SQL配置日志传送 497
12.3.4 配置故障转移 503
12.4 数据库镜像 504
12.4.1 客户端重定向 505
12.4.2 数据库镜像模式 505
12.4.3 配置数据库镜像 507
12.4.4 监视数据库镜像 511
12.4.5 管理数据库镜像 514
12.5 小结 516
第13章 复制 517
13.1 复制概述 517
13.2 SQL Server复制代理 518
13.2.1 快照代理 518
13.2.2 日志读取器代理 518
13.2.3 分发代理 519
13.2.4 合并代理 519
13.2.5 队列读取器代理 519
13.3 SQL Server复制类型 519
13.3.1 分布式事务 520
13.3.2 事务复制 520
13.3.3 快照复制 521
13.3.4 合并复制 522
13.3.5 Oracle复制 522
13.4 SQL Server复制模型 522
13.4.1 单个发布服务器/多个订阅服务器 523
13.4.2 多个发布服务器/单个订阅服务器 523
13.4.3 多个发布服务器/多个订阅服务器 523
13.5 复制工具 523
13.5.1 筛选 524
13.5.2 复制分区表和索引 525
13.5.3 新建发布向导 525
13.5.4 新建订阅向导 527
13.5.5 复制监视器 529
13.6 小结 530
第14章 公共语言运行时 531
14.1 数据库和编程 531
14.2 Transact-SQL过时了吗 532
14.3 .NET和CLR 532
14.3.1 程序集 532
14.3.2 名称空间 533
14.3.3 类 533
14.3.4 方法 533
14.4 SQL Server CLR对象 533
14.4.1 启用SQL CLR 534
14.4.2 创建一个SQL CLR程序集 535
14.4.3 添加程序集 539
14.4.4 兼容数据类型 540
14.4.5 用户定义函数 541
14.4.6 存储过程 543
14.4.7 触发器 544
14.4.8 用户定义类型 545
14.4.9 聚合 548
14.5 使用Visual Studio进行部署 551
14.6 编程支持 554
14.6.1 线程 554
14.6.2 模拟 554
14.7 安全性选项 555
14.7.1 .NET安全性 555
14.7.2 保护SQL CLR 556
14.7.3 SQL Server CLR权限集 556
14.8 小结 558
第15章 商业智能指南 559
15.1 理解BI 559
15.2 性能管理 559
15.3 商业智能组件 560
15.3.1 数据进出 560
15.3.2 分析数据 560
15.3.3 生成报表 561
15.4 其他BI工具 562
15.4.1 SharePoint的BI功能 562
15.4.2 ProClarity和PerformancePoint Server 562
15.5 工具太多,时间太少 563
15.6 小结 564
第16章 SQL Server Integration Services 565
16.1 SSIS简介 565
16.1.1 Integration Services 566
16.1.2 Integration Services对象模型 567
16.1.3 Integration Services运行时 567
16.1.4 Integration Services数据流 568
16.2 导入和导出数据 568
16.2.1 使用导入向导 568
16.2.2 使用导出向导 574
16.3 使用SSIS转换数据 576
16.3.1 了解开发环境 576
16.3.2 包元素 578
16.3.3 创建一个简单包 585
16.4 小结 589
第17章 SQL Server Analysis Services 591
17.1 理解OLAP 591
17.2 使用SSAS 593
17.2.1 创建项目 593
17.2.2 定义一个数据源 593
17.2.3 创建数据源视图 595
17.2.4 定义维度 596
17.2.5 创建多维数据集 597
17.2.6 创建层次结构 599
17.2.7 部署项目 605
17.3 管理SSAS 606
17.3.1 浏览多维数据集 607
17.3.2 SSAS安全性 608
17.4 高级SSAS概念 612
17.4.1 MDX 612
17.4.2 数据挖掘 612
17.5 小结 613
第18章 SQL Server Reporting Services 615
18.1 SQL Server Reporting Services概述 615
18.2 安装和配置 623
18.2.1 硬件和软件要求 623
18.2.2 安全考虑事项 624
18.2.3 安装模式 624
18.2.4 多个实例和版本 625
18.3 创建报表 626
18.3.1 报表设计器 626
18.3.2 报表生成器 626
18.4 报表传递 633
18.4.1 缓存 633
18.4.2 快照 634
18.4.3 订阅 634
18.5 小结 635
第19章 Service Broker简介 637
19.1 面向服务的体系结构 637
19.2 Service Broker概述 638
19.3 Service Broker元素 638
19.3.1 会话 638
19.3.2 约定 640
19.3.3 队列 640
19.3.4 服务 641
19.3.5 路由 641
19.4 Service Broker安全性考虑事项 641
19.4.1 对话安全性 642
19.4.2 传输安全性 642
19.5 创建一个示例应用程序 642
19.5.1 创建和准备数据库 643
19.5.2 创建Service Broker对象 645
19.5.3 为TicketInputService创建对象 646
19.5.4 为TicketNotifyService创建对象 649
19.5.5 测试应用程序 652
19.6 通过SSMS管理Service Broker 654
19.7 小结 655