目 录
第1章 SQL Server 2014体系结构 1
1.1 SQL Server 2014生态系统 1
1.2 SQL Server 2014的重要新增功能 2
1.2.1 生产DBA 2
1.2.2 开发DBA 3
1.2.3 商业智能DBA和开发人员 3
1.3 SQL Server体系结构 4
1.3.1 数据库文件和事务日志 4
1.3.2 SQL Server Native Client 5
1.3.3 标准系统数据库 6
1.3.4 架构 8
1.3.5 同义词 8
1.3.6 动态管理对象 9
1.3.7 SQL Server 2014数据类型 10
1.4 SQL Server版本 15
1.4.1 版本概览 15
1.4.2 许可 17
1.5 小结 18
第2章 SQL Server 2014安装最佳实践 19
2.1 规划系统 20
2.1.1 硬件选择 20
2.1.2 软件和安装选择 24
2.2 安装SQL Server 26
2.2.1 全新安装 26
2.2.2 并列安装 26
2.2.3 升级安装 27
2.2.4 手动安装 27
2.2.5 自动安装 30
2.3 安装Analysis Services 35
2.3.1 多维和数据挖掘模式(UDM模式) 37
2.3.2 表格模式 38
2.4 安装PowerPivot for SharePoint 39
2.5 系统压力测试 40
2.6 安装后的配置 40
2.6.1 配置SQL Server设置以实现高性能 40
2.6.2 tempdb 42
2.6.3 针对安全配置SQL Server设置 43
2.6.4 SQL Server配置管理器 45
2.6.5 备份 45
2.7 卸载SQL Server 45
2.7.1 卸载Reporting Services 45
2.7.2 卸载Analysis Services 45
2.7.3 卸载SQL Server数据库引擎 46
2.8 故障排除失败安装 46
2.9 小结 46
第3章 升级到SQL Server 2014的
最佳实践 49
3.1 升级到SQL Server 2014的原因 49
3.1.1 减少风险—— 微软的贡献 50
3.1.2 独立软件厂商和SQL社区的贡献 51
3.2 升级到SQL Server 2014 51
3.2.1 本地升级 51
3.2.2 并列升级 53
3.2.3 本地升级与并列升级的考虑事项 53
3.3 升级前的操作步骤和可用工具 54
3.3.1 升级前的步骤 54
3.3.2 升级前的工具 54
3.4 向后兼容性 61
3.4.1 SQL Server 2014中不支持和未延续的
功能 62
3.4.2 SQL Server 2014弃用的数据库功能 63
3.4.3 SQL Server 2014中其他影响行为的
变化 63
3.5 SQL Server组件的考虑事项 64
3.5.1 升级全文目录 64
3.5.2 升级Reporting Services 64
3.5.3 升级到64位 65
3.6 升级后检查 65
3.7 小结 65
第4章 数据库引擎管理与故障排除 67
4.1 配置和管理工具 67
4.1.1 SQL Server配置管理器 68
4.1.2 启动参数 69
4.1.3 启动存储过程 71
4.1.4 部分包含的数据库 73
4.2 故障排除工具 74
4.2.1 专用管理员连接 74
4.2.2 重建系统数据库 75
4.3 SQL Server Management Studio 76
4.3.1 报表 76
4.3.2 在SQL Server Management Studio中
配置SQL Server 79
4.3.3 筛选对象 83
4.3.4 错误日志 84
4.3.5 活动监视器 85
4.4 使用T-SQL监控进程 88
4.4.1 sp_who和sp_who2 89
4.4.2 sys.dm_exec_connections 89
4.4.3 sys.dm_exec_sql_text 90
4.5 多服务器管理 90
4.6 跟踪标记 91
4.7 获得技术支持 93
4.7.1 SQLDumper.exe 93
4.7.2 SQLDiag.exe 94
4.8 小结 96
第5章 自动化SQL Server 97
5.1 维护计划 97
5.1.1 维护计划向导 98
5.1.2 维护计划设计器 103
5.2 使用SQL Server代理自动化
SQL Server 105
5.2.1 作业 105
5.2.2 计划 111
5.2.3 操作员 111
5.2.4 警报 114
5.3 SQL Server代理安全性 119
5.3.1 服务账户 119
5.3.2 访问SQL Server代理 119
5.3.3 SQL Server代理的代理 120
5.4 配置SQL Server代理 123
5.4.1 常规属性 123
5.4.2 高级属性 124
5.4.3 警报系统属性 125
5.4.4 作业系统属性 125
5.4.5 连接属性 126
5.4.6 历史记录属性 127
5.5 多服务器管理 127
5.5.1 使用标记替换 127
5.5.2 事件转发 129
5.5.3 使用WMI 130
5.5.4 多服务器管理——使用主服务器和
目标服务器 131
5.6 小结 132
第6章 SQL Server 2014中的Service
Broker 133
6.1 异步消息 133
6.1.1 SQL Server Service Broker概览 134
6.1.2 SQL Server Service Broker和其他
消息队列的对比 135
6.2 配置SQL Server Service Broker 136
6.2.1 设置Service Broker的状态 136
6.2.2 消息类型 138
6.2.3 约定 139
6.2.4 队列 139
6.2.5 服务 141
6.2.6 路由 141
6.2.7 优先级 143
6.2.8 会话组 144
6.3 使用SQL Server Service Broker 144
6.3.1 发送消息 145
6.3.2 接收消息 147
6.3.3 在实例间发送消息 149
6.3.4 外部激活 151
6.3.5 用户登录日志示例 152
6.4 小结 159
第7章 SQL Server中的CLR集成 161
7.1 CLR简介 161
7.1.1 作为.NET运行时主机的SQL
Server 162
7.1.2 应用程序域 163
7.1.3 T-SQL与CLR 163
7.1.4 启用CLR集成 163
7.2 创建CLR程序集 164
7.2.1 不使用Visual Studio的方式 165
7.2.2 使用Microsoft SQL Server Data
Tools 167
7.3 CLR集成的安全性 168
7.4 性能监控 168
7.4.1 Windows系统监控器 169
7.4.2 扩展事件 170
7.4.3 DMV 171
7.4.4 CLR集成的设计目标 172
7.5 小结 172
第8章 保护数据库实例 175
8.1 身份验证类型 176
8.1.1 SQL身份验证 176
8.1.2 Windows身份验证 176
8.1.3 SQL Server身份验证和Windows
身份验证的对比 177
8.2 登录名和用户 177
8.3 安全对象授权 178
8.3.1 服务器安全对象 179
8.3.2 数据库安全对象 183
8.3.3 权限链 185
8.3.4 跨数据库所有权链接 185
8.4 行级别安全 188
8.5 小结 189
第9章 内存OLTP 191
9.1 使用与实现内存OLTP 191
9.1.1 启用内存OLTP 192
9.1.2 内存OLTP结构 193
9.1.3 记录 194
9.1.4 索引 195
9.1.5 CPU相关考虑 199
9.1.6 虚拟化相关考虑 199
9.1.7 内存相关考虑 199
9.1.8 使用资源调控器管理内存 202
9.2 创建本地编译存储过程 204
9.3 分析、迁移和报告(ARM)工具
概述 207
9.4 小结 218
第10章 配置服务器以调整性能 219
10.1 DBA需要了解的与性能有关的
知识 220
10.1.1 性能调整周期 220
10.1.2 配置 221
10.1.3 电源配置 221
10.1.4 即时数据库文件初始化 223
10.1.5 跟踪标记 226
10.1.6 定义良好性能 226
10.1.7 关注重点 227
10.2 开发DBA需要知道的与性能
有关的知识 227
10.2.1 用户 228
10.2.2 SQL语句 228
10.2.3 数据使用模式 228
10.2.4 数据库架构 228
10.3 生产DBA需要知道的与性能
有关的知识 229
10.3.1 优化服务器的硬件 230
10.3.2 硬件管理 231
10.4 CPU 231
10.4.1 x64 231
10.4.2 缓存 232
10.4.3 超线程 232
10.4.4 多核 233
10.5 内存 234
10.5.1 物理内存 234
10.5.2 物理地址空间 234
10.5.3 虚拟内存管理器 234
10.5.4 页面文件 235
10.5.5 页面错误 235
10.6 I/O 236
10.6.1 网络 236
10.6.2 磁盘 238
10.6.3 固态/闪存驱动器 239
10.6.4 关于存储的考虑事项 240
10.7 小结 243
第11章 优化SQL Server 2014 245
11.1 应用程序优化 245
11.2 I/O问题 246
11.2.1 SQL Server I/O进程模型 246
11.2.2 数据库文件的位置 247
11.2.3 tempdb需要考虑的事项 247
11.3 SQL Server内部原理和
文件分配 251
11.4 表和索引分区 252
11.4.1 分区的原因 253
11.4.2 创建分区函数 254
11.4.3 创建文件组 256
11.4.4 创建分区方案 256
11.5 数据压缩 257
11.5.1 行压缩 257
11.5.2 页面压缩 259
11.5.3 估计节省的空间 261
11.5.4 监控数据压缩 263
11.5.5 数据压缩需要考虑的事项 263
11.6 SQL Server和CPU 264
11.6.1 NUMA和热添加CPU 265
11.6.2 缓存一致性 265
11.6.3 关联掩码 266
11.6.4 最大并行度(MAXDOP) 267
11.6.5 并行的开销阈值 268
11.7 内存考虑事项和改进 269
11.7.1 缓冲池扩展 269
11.7.2 优化SQL Server内存 271
11.7.3 数据本地化 273
11.7.4 最大服务器内存 273
11.8 资源调控器 274
11.8.1 资源调控器的基本组成元素 275
11.8.2 在SQL Server 2014 Management
Studio中使用资源调控器 278
11.8.3 监控资源调控器 280
11.9 小结 280
第12章 监控SQL Server 281
12.1 监控的目标 282
12.1.1 确定监控目标 282
12.1.2 建立基准 282
12.1.3 比较当前指标和基准 283
12.2 选择合适的监控工具 283
12.3 性能监视器 284
12.3.1 CPU资源计数器 285
12.3.2 磁盘活动 287
12.3.3 内存使用率 292
12.3.4 性能监控工具 294
12.4 监控事件 295
12.4.1 默认跟踪 297
12.4.2 system_health会话 298
12.4.3 SQL跟踪 299
12.4.4 事件通知 302
12.4.5 SQL Server扩展事件 305
12.5 使用动态管理视图和函数进行
监控 323
12.5.1 SQL Server的运行状态 324
12.5.2 查看锁定信息 328
12.5.3 查看阻塞信息 328
12.5.4 数据库中的索引使用率 328
12.5.5 数据内没有使用的索引 330
12.5.6 查看等待内存授予的查询 331
12.5.7 已连接用户的信息 331
12.5.8 文件组空闲空间 331
12.5.9 当前运行的查询的查询计划和
查询文本 332
12.5.10 内存使用率 333
12.5.11 缓冲池内存使用 333
12.6 监控日志 334
12.6.1 监控SQL Server错误日志 334
12.6.2 监控Windows事件日志 334
12.7 SQL Server标准报表 334
12.8 System Center Advisor 336
12.9 小结 337
第13章 T-SQL性能调优 339
13.1 查询处理概览 340
13.1.1 生成执行计划 341
13.1.2 统计 342
13.1.3 SQL Server 2014查询优化
提升——新基数估计 342
13.1.4 使用新的基数估计器 343
13.2 标识SQL查询性能调优问题 343
13.2.1 监测查询性能 343
13.2.2 找到低效查询时如何做 345
13.2.3 生成查询计划 345
13.2.4 阅读执行计划 347
13.3 查询计划中的数据访问操作符 349
13.3.1 表扫描 350
13.3.2 聚集索引扫描 352
13.3.3 非聚集索引扫描 354
13.3.4 连接访问操作符 356
13.4 连接操作符 357
13.4.1 嵌套循环或循环连接 357
13.4.2 散列连接 358
13.4.3 合并连接 360
13.5 数据修改查询计划 361
13.5.1 在分区表和分区索引上的
查询处理 363
13.5.2 能够感知分区的操作 364
13.5.3 分区对象的并行查询执行策略 365
13.6 在生产环境中分析查询性能 365
13.7 将上述内容结合 367
13.8 小结 367
第14章 创建数据库索引 369
14.1 SQL Server 2014中新增的索引 369
14.2 索引和分区表 373
14.2.1 理解索引 373
14.2.2 创建索引 376
14.2.3 使用分区表和索引 378
14.3 索引维护 379
14.3.1 监控索引碎片 379
14.3.2 清理索引 380
14.4 使用索引改进查询性能 382
14.5 数据库引擎优化顾问 386
14.6 索引太多的成本 387
14.7 小结 389
第15章 复制 391
15.1 复制概述 391
15.1.1 复制的组成 392
15.1.2 复制类型 394
15.2 复制模型 395
15.2.1 单个发布者,一个或多个订阅者 395
15.2.2 多个发布者,单个订阅者 396
15.2.3 多个发布者同时也是订阅者 397
15.2.4 更新订阅者 398
15.2.5 对等 398
15.3 实现复制 399
15.3.1 设置快照复制 399
15.3.2 建立分发数据库 399
15.3.3 实现快照复制 403
15.3.4 实现事务和合并复制 415
15.4 对等复制 416
15.4.1 建立对等复制 416
15.4.2 配置对等复制 417
15.5 生成复制脚本 420
15.6 监控复制 421
15.6.1 复制监视器 421
15.6.2 性能监视器 423
15.6.3 复制DMV 423
15.6.4 sp_replcounters 424
15.7 小结 424
第16章 SQL Server 2014群集 425
16.1 群集与组织 426
16.1.1 群集能做什么 426
16.1.2 群集不能做什么 427
16.1.3 选用SQL Server 2014群集的
条件 427
16.1.4 群集以外的其他选择 428
16.2 群集概述 430
16.2.1 群集的工作原理 430
16.2.2 群集选项 434
16.3 SQL Server群集的升级 436
16.3.1 不升级 436
16.3.2 就地升级到SQL Server 2014
群集 436
16.3.3 从头开始重建群集 437
16.3.4 回退计划 438
16.3.5 最好的升级选择 438
16.4 群集的准备工作 439
16.4.1 基础设施的准备工作 439
16.4.2 硬件的准备工作 440
16.5 Windows Server 2012 R2的群集 441
16.5.1 安装Windows Server 2012 R2
故障转移群集前的准备工作 442
16.5.2 安装Windows Server 2012 R2
故障转移群集 442
16.5.3 对Windows Server 2012 R2进行
群集相关配置 445
16.6 群集Microsoft分布式事务处理
协调器 446
16.7 SQL Server 2014的群集 447
16.7.1 群集SQL Server的步骤 448
16.7.2 服务包及累计更新的安装 453
16.7.3 反复测试 453
16.8 管理和监控群集 455
16.9 群集的故障排除 456
16.9.1 如何对Windows故障转移群集
进行故障排除 456
16.9.2 故障的预防工作 456
16.9.3 故障信息的收集 456
16.9.4 故障的解决 457
16.9.5 与Microsoft合作 457
16.10 小结 458
第17章 备份与恢复 459
17.1 备份和还原的增强 460
17.1.1 SQL Server Backup to URL 460
17.1.2 SQL Server Managed Backup
to Windows Azure 460
17.1.3 备份加密 460
17.2 备份和还原概述 460
17.2.1 备份的工作方式 461
17.2.2 复制数据库 463
17.2.3 备份压缩 476
17.2.4 恢复模式之间的比较 477
17.2.5 选择一种恢复模式 478
17.2.6 在恢复模式间切换 479
17.2.7 备份历史表 480
17.2.8 备份与还原要求的权限 481
17.2.9 备份系统数据库 481
17.2.10 全文备份 482
17.2.11 验证备份映像 483
17.2.12 还原的工作方式 484
17.3 准备恢复 485
17.3.1 可恢复性需求 485
17.3.2 数据使用模式 486
17.3.3 维护时间窗口 487
17.3.4 其他高可用性解决方案 487
17.4 开发与执行备份计划 488
17.4.1 使用SQL Server Management
Studio 488
17.4.2 数据库维护计划 492
17.4.3 使用T-SQL备份命令 495
17.5 管理备份 497
17.6 备份与还原的性能 497
17.7 执行恢复 498
17.7.1 还原过程 498
17.7.2 使用SQL Server Management
Studio还原数据库 502
17.7.3 T-SQL还原命令 505
17.7.4 还原系统数据库 506
17.8 归档数据 507
17.8.1 SQL Server中表的分区 507
17.8.2 分区视图 508
17.9 小结 509
第18章 SQL Server 2014日志传送 511
18.1 日志传送部署方案 511
18.1.1 使用日志传送创建热后备
服务器 512
18.1.2 使用日志传送作为灾难恢复
解决方案 513
18.1.3 使用日志传送作为报告数据库
解决方案 513
18.2 日志传送体系结构 514
18.2.1 主服务器 515
18.2.2 辅助服务器 515
18.2.3 监控服务器 515
18.3 日志传送进程 515
18.4 系统要求 516
18.4.1 网络 516
18.4.2 具有同等容量的服务器 517
18.4.3 存储 517
18.4.4 软件 517
18.5 部署日志传送 517
18.5.1 初始配置 518
18.5.2 通过Management Studio部署 519
18.5.3 通过T-SQL命令来部署 525
18.6 监控与故障排除 526
18.6.1 通过SQL Server 2014 Management
Studio进行监控 527
18.6.2 通过存储过程进行监控 527
18.6.3 故障排除方法 528
18.7 管理角色变更 528
18.7.1 同步依赖对象 528
18.7.2 从主服务器角色切换到辅助
服务器 531
18.7.3 在主角色和辅助角色之间切换 532
18.7.4 把客户端连接重定向到辅助
服务器 533
18.8 数据库备份计划 534
18.9 集成日志传送与其他高可用性
解决方案 534
18.9.1 SQL Server 2014数据镜像 535
18.9.2 Windows故障转移群集 535
18.9.3 SQL Server 2014复制 535
18.10 删除日志传送 536
18.10.1 通过Management Studio删除
日志传送 536
18.10.2 通过T-SQL命令删除日志
传送 536
18.11 日志传送性能 537
18.12 升级到SQL Server 2014的
日志传送 538
18.12.1 宕机时间最小化方法 538
18.12.2 宕机方法 538
18.12.3 部署日志传送方法 538
18.13 小结 539
第19章 数据库镜像 541
19.1 数据库镜像概述 542
19.2 数据库镜像的运行模式 543
19.3 数据库镜像示例 545
19.3.1 准备端点 546
19.3.2 准备用于镜像的数据库 551
19.3.3 主服务器与镜像服务器间的
首次同步 552
19.3.4 建立镜像会话 552
19.3.5 无自动故障转移的高安全性
运行模式 554
19.3.6 采用自动故障转移的高安全性
运行模式 554
19.3.7 高性能运行模式 555
19.4 SQL Server 2014各发行版本中的
数据库镜像 556
19.5 数据库镜像角色切换 557
19.5.1 自动故障转移 557
19.5.2 手动故障转移 559
19.5.3 强制故障转移 561
19.6 使用数据库镜像监视器进行
监控 562
19.7 为故障转移准备镜像服务器 567
19.7.1 硬件、软件和服务器配置 567
19.7.2 计划宕机时间内的数据库可用性 568
19.7.3 镜像服务器上的SQL作业配置 569
19.7.4 重定向客户端到镜像 569
19.8 数据库镜像以及其他高可用性
解决方案 570
19.8.1 数据库镜像与群集 571
19.8.2 数据库镜像与事务复制 571
19.8.3 数据库镜像与日志传送 571
19.8.4 数据库镜像与可用性组 572
19.9 数据库快照 572
19.10 小结 573
第20章 Integration Services管理和
性能调整 575
20.1 Integration Services简介 575
20.1.1 Integration Services的用途 576
20.1.2 Integration Services的主要部分 577
20.1.3 项目管理和更改控制 578
20.2 Integration Services服务的管理 578
20.2.1 Integration Services服务概述 578
20.2.2 配置 579
20.2.3 事件日志 582
20.2.4 监控活动 582
20.3 包部署模型中Integration Services
包的管理 583
20.3.1 使用Management Studio管理包 583
20.3.2 部署 585
20.4 项目部署模型中Integration Services
包的管理 588
20.4.1 配置SSIS目录 588
20.4.2 部署包 589
20.4.3 配置包 591
20.5 执行和调度 593
20.5.1 在SSDT中运行包 594
20.5.2 使用SQL Server导入和导出向导
运行包 594
20.5.3 使用DTExec运行包 594
20.5.4 使用DTExecUI运行包
(包部署模型) 595
20.5.5 使用执行包工具运行包
(项目部署模型) 595
20.5.6 使用SQL Server代理调度执行 597
20.5.7 使用T-SQL运行包 598
20.6 对Integration Services应用
安全性 598
20.6.1 Integration Services安全性概述 598
20.6.2 在包部署模型中保护包 599
20.7 小结 601
第21章 Analysis Services管理和
性能调整 603
21.1 Analysis Services概述 603
21.1.1 MOLAP的组件 605
21.1.2 表格模型的组件 605
21.1.3 Analysis Services体系结构组件 605
21.2 管理Analysis Services服务器 606
21.2.1 服务器属性 607
21.2.2 必需的服务 608
21.2.3 Analysis Services脚本语言 608
21.3 管理Analysis Services数据库 610
21.3.1 部署Analysis Services数据库 610
21.3.2 处理Analysis Services对象 613
21.3.3 备份和还原Analysis Services
数据库 617
21.3.4 同步Analysis Services数据库 620
21.4 Analysis Services性能监控和
调整 620
21.4.1 监控Analysis Services事件 621
21.4.2 将网络流量记录器用于事实后
分析 621
21.5 小结 622
第22章 SQL Server Reporting Services
管理 623
22.1 SQL Server Reporting Services
配置管理器 623
22.1.1 服务账户 625
22.1.2 Web服务URL 627
22.1.3 Reporting Services数据库 628
22.1.4 报表管理器URL 630
22.1.5 电子邮件设置 631
22.1.6 执行账户 631
22.1.7 加密密钥 632
22.1.8 扩展部署 633
22.2 报表执行日志 634
22.3 报表管理器 635
22.3.1 管理报表管理器 635
22.3.2 管理报表 642
22.4 小结 654
第23章 SQL Server 2014与SharePoint
2013集成 655
23.1 集成的组成部分 655
23.1.1 PowerPivot 656
23.1.2 报表服务 658
23.1.3 Power View 661
23.2 数据刷新 662
23.2.1 在Excel中使用数据连接 662
23.2.2 PerformancePoint数据连接 666
23.2.3 Visio Services数据刷新 667
23.2.4 PowerPivot数据刷新 669
23.3 小结 676
第24章 SQL数据库的管理和配置 677
24.1 Windows Azure SQL数据库简介 677
24.2 SQL数据库架构 678
24.2.1 客户端层 678
24.2.2 服务层 679
24.2.3 平台层 679
24.2.4 基础设施层 679
24.2.5 理解区别 679
24.3 配置SQL数据库 679
24.3.1 服务器和数据库设置 680
24.3.2 流量调节与负载均衡 686
24.3.3 配置SQL数据库防火墙 687
24.3.4 连接到SQL数据库 688
24.4 管理SQL数据库 689
24.4.1 创建登录名和用户 690
24.4.2 分配访问权限 692
24.5 使用SQL数据库 692
24.5.1 使用SQL数据库进行备份 693
24.5.2 SQL数据库对象资源管理器 694
24.6 SQL数据库中缺失的功能 695
24.7 小结 696
第25章 AlwaysOn可用性组 697
25.1 架构 698
25.1.1 可用性组副本和角色 698
25.1.2 可用性模式 699
25.1.3 所支持的故障转移类型 699
25.1.4 允许只读访问辅助副本 700
25.2 可用性组示例 701
25.2.1 配置新的可用性组 701
25.2.2 配置已经存在的可用性组 709
25.2.3 可用性组的故障转移操作 711
25.2.4 挂起可用性数据库 712
25.2.5 恢复可用性数据库 713
25.2.6 客户端应用程序连接 714
25.3 用于只读辅助副本的活动辅助 715
25.3.1 只读访问行为 715
25.3.2 辅助副本的客户端可连接性 716
25.3.3 性能 717
25.4 在辅助副本上进行备份 718
25.5 AlwaysOn组面板 720
25.6 监测和故障排除 721
25.7 小结 722
· · · · · · (
收起)