第1章 安装 1
1.1 平台的选择 1
1.2 安装——重要的选择 2
1.3 自动安装 10
1.3.1 文件 10
1.3.2 进行自动安装 11
1.4 测试安装 12
1.4.1 文件 12
1.4.3 实际应用中的测试 13
1.4.2 服务 13
1.4.4 排除安装故障 14
第2章 SQL Server的体系结构 16
2.1 SQL Server引擎 16
2.1.1 Net-Library 17
2.1.2 开放式数据服务 18
2.2 关系引擎和存储引擎 21
2.2.1 命令分析器 22
2.2.2 优化组件 22
2.2.3 管理器服务 23
2.2.6 关系引擎和存储引擎间的通信 24
2.2.4 表达式管理器组件 24
2.2.5 查询执行组件 24
2.2.7 访问方式管理器 25
2.2.8 访问方式管理器的其他组件 25
2.2.9 页管理器和文本管理器 28
2.2.10 事务管理器 29
2.2.11 锁管理器 31
2.3 管理内存 32
2.3.1 缓冲区管理器和内存池 32
2.2.12 SQL Server中的其他管理器 32
2.3.2 访问内存中的页 33
2.3.3 访问空闲页(惰性写入器) 33
2.3.4 检查点 35
2.3.5 通过缓冲区管理器访问页 36
2.3.6 大容量内存的问题 36
2.3.7 日志管理器 37
2.4 SQL Server核心部分及其与操作系统间的交互 38
2.4.1 线程和对称多机处理 39
2.4.2 工作者线程池 39
2.4.3 活动状态与闲置状态 40
2.4.4 Windows NT/2000下的磁盘I/O 41
2.4.5 数据库类型 41
2.4.6 数据库对象 42
2.4.7 SQL Server对象的引用 43
2.4.8 理解系统表的重要性 44
2.5 小结 45
第3章 安全设计 46
3.1 老题新解 46
3.2 SQL Server登录 47
3.3 数据库用户 49
3.4 服务器角色 50
3.4.1 数据库创建者 50
3.4.2 磁盘管理员 50
3.4.3 进程管理员 51
3.4.4 安全管理员 51
3.4.5 服务器管理员 51
3.4.6 设置管理员 52
3.4.7 系统管理员 52
3.5.1 理解公共角色 54
3.5 数据库角色 54
3.5.2 细说预定义数据库角色 55
3.6 探究数据库许可 58
3.6.1 理解语句许可 58
3.7 探索对象许可 60
3.8 理解应用程序角色 62
3.9 创造性的管理安全性 64
3.9.1 使用系统存储过程管理安全性 64
3.9.2 使用视图管理安全性 65
3.10 小结 67
第4章 SQL Server中的数据结构 68
4.1 页的概念 68
4.2 盘区的概念 68
4.3 数据库中锁造成的影响 69
4.4 默认填充因子说明 70
4.5 探究数据库文件 73
4.5.1 事务日志的概念 75
4.5.2 事务的类型 76
4.5.3 有效地处理锁冲突 77
4.5.4 数据库文件 77
4.5.5 扩展数据库文件 79
4.6 创建数据库 80
4.7 数据库规格说明简介 82
4.7.1 数据库名称 82
4.7.2 在CREATE DATABASE中使用NAME参量 82
4.7.3 利用FILENAME参量管理文件名称 83
4.7.4 创建过程中对文件组的规格说明 83
4.7.5 指定数据库的初始SIZE 84
4.7.6 用MAXSIZE来限制数据库的增长 85
4.7.7 用FILEGROWTH来控制数据库扩展的性质 85
4.7.8 用LOG参量指定有关事务日志的信息 87
4.8 探索数据库选项 88
4.8.1 单用户模式 90
4.8.2 设置DBO Use Only标志 90
4.8.3 自动缩小 91
4.8.4 在检查点截断日志 92
4.8.5 只读模式 92
4.8.6 自动创建统计数据 93
4.8.7 自动更新统计数据 93
4.8.8 有效地使用Auto-Close(自动关闭)选项 93
4.8.11 判定何时使用Recursive Triggers(递归触发器)选项 94
4.8.9 使用Select Into/Bulk Copy(选中/批量复制)选项 94
4.8.10 使用ANSI NULL默认选项 94
4.8.12 使用Transact-SQL来指定Quoted Identifiers(双引号)的使用 95
4.8.13 检测断裂页的存在 95
4.9 性能上的考虑 96
4.10 小结 97
第5章 数据转换和分布式数据管理 98
5.1 为何在许多环境下都需要进行数据转换 98
5.1.3 使数据一致 99
5.1.4 有效性验证 99
5.1.2 数据的重构和映射 99
5.1.1 更改数据格式 99
5.1.5 SQL Server中转换数据的工具 100
5.2 考虑DTS的实施 101
5.2.1 DTS概述 101
5.2.2 DTS进程 102
5.2.3 DTS工具 104
5.2.4 用DTS进行数据转换 108
5.2.5 定义工作流 110
5.2.6 执行和调度DTS包 116
5.3 链接的服务器简介 117
5.3.1 添加链接的服务器 118
5.3.2 关于链接的服务器的安全性考虑 118
5.3.3 用于链接的服务器的系统存储过程 119
5.3.4 执行分布式查询 119
5.4 使用批量复制以及分布式事务协调器来复制数据 121
5.4.1 使用批量复制程序 121
5.5 利用SQL Server分布数据 123
5.6 分布式查询简介 124
5.5.2 复制 124
5.5.1 Microsoft的分布式事务协调器 124
5.6.1 访问远程数据 125
5.6.2 在远程数据源上执行专用查询 125
5.7 小结 126
第6章 实施和管理备份方案 128
6.1 管理员的定义 128
6.2 备份过程 128
6.2.1 受限制的活动 130
6.3 何时备份 130
6.3.1 备份系统数据库 131
6.4 设计备份方案 133
6.4.1 理解备份的类型 133
6.4.2 备份位置 134
6.5 执行完全备份 136
6.6 执行差分备份 139
6.7 执行事务日志备份 140
6.8 备份选项 142
6.8.1 Options标签 142
6.8.2 Transact-SQL备份参数 144
6.9 高级备份方案 148
6.10 小结 150
第7章 还原数据库 151
7.1 了解SQL Server还原过程 151
7.2 数据库的还原 152
7.3 使用Enterprise Manager来还原数据库 152
7.3.1 使用Database单选按钮 154
7.3.2 使用Filegroups or Files单选按钮 154
7.3.3 使用From Device单选按钮 156
7.3.4 理解Backup History(备份历史) 157
7.4.1 还原数据库 158
7.4 利用Transact-SQL还原数据库 158
7.4.2 在还原中使用DBO_ONLY选项 159
7.4.3 利用With File选项来选择介质设备 159
7.4.4 利用MediaName参数来指定备份设备 160
7.4.5 利用Move To选项还原到一个特定的位置中 161
7.4.6 利用Recovery和Norecovery选项来控制何时以及如何执行恢复过程 161
7.4.7 利用Standby选项来创建一个热备用服务器 162
7.4.8 Replace选项 162
7.4.11 还原文件和文件组 163
7.4.10 控制磁带设备 163
7.4.9 利用Restart选项在服务器崩溃后继续还原操作 163
7.4.12 还原事务日志 164
7.4.13 还原到某一个特定的时间点 165
7.4.14 汇集统计数据 165
7.5 备用服务器 166
7.6 小结 167
第8章 监视与优化 168
8.1 配置问题 168
8.1.1 Windows 2000配置设置 168
8.1.2 SQL Server配置设置 170
8.1.3 SQL Server的内存选项 171
8.1.4 设置调度选项 173
8.1.5 磁盘I/O选项 175
8.1.6 查询处理选项 176
8.1.7 数据库选项 179
8.1.8 缓冲区管理器选项 180
8.1.9 SQLSERVR.EXE的启动参数 181
8.1.10 系统维护 182
8.3 SQL Server Profiler 183
8.2 监视系统行为 183
8.3.1 定义追踪 184
8.3.2 采集诊断信息 185
8.3.3 调试SQL Server Profiler 188
8.4 性能监视器 189
8.4.1 性能计数器 190
8.4.2 用户自定义计数器 193
8.4.3 其他Performance Monitor计数器 194
8.4.4 其他性能监视方面的考虑 196
8.5 备份和恢复的性能优化 196
8.5.3 优化恢复的性能 197
8.5.2 优化事务日志备份的性能 197
8.5.1 优化数据库、差分数据库和文件备份的性能 197
8.5.4 优化磁带备份设备的性能 198
8.5.5 优化磁盘备份设备的性能 199
8.5.6 优化数据压缩 199
8.6 小结 200
第9章 SQL Server的自动化 201
9.1 为何需要自动化 201
9.2 理解SQLServerAgent 202
9.3 配置电子邮件服务 203
9.4 操作员的使用 205
9.4.1 创建一个操作员 206
9.4.2 用事务管理器来管理操作员 211
9.5 创建并管理作业 214
9.5.1 使用事务管理器来管理作业 214
9.5.2 创建作业 215
9.5.3 管理作业步骤 217
9.5.4 创建和管理调度表 219
9.5.5 管理通告 221
9.6 示例:TESTDB备份的自动化 221
9.7 理解什么是警告 223
9.7.1 创建并管理警告 224
9.7.2 配置事件转发 227
9.8 多服务器环境中的作业自动化 227
9.8.1 配置Master服务器 228
9.8.2 配置Target服务器 228
9.9 小结 229
第10章 复制 230
10.1 类比 230
10.1.1 出版商 230
10.1.4 复制的过程 231
10.1.2 发行商 231
10.1.3 订户 231
10.2 复制的本质 232
10.2.1 复制系统的模型简介 233
10.2.2 代理的作用 235
10.2.3 复制方式 236
10.3 规划复制过程 239
10.3.1 为什么要进行复制? 239
10.3.2 什么样的数据需要进行复制? 239
10.3.5 你将用什么来实现远程连接? 240
10.3.3 谁是订户? 240
10.3.4 进行一次复制的周期应该是多久? 240
10.3.6 采用什么复制方式? 241
10.3.7 采用什么复制模型? 241
10.3.8 发行代理在什么地方? 241
10.3.9 DISTRIBUTION数据库是共享的吗? 241
10.3.10 选择推式订阅还是拉式订阅? 242
10.3.11 你要使用什么硬件设备? 242
10.3.12 实现整个复制计划 242
10.4.1 配置发行商服务器 243
10.4 设置整个复制进程 243
10.4.2 修改出版商服务器和发行商服务器 247
10.5 创建一份出版物 251
10.5.1 创建出版物向导程序导航 252
10.5.2 研究Publication Properties对话框 253
10.6 创建一份订阅物 256
10.7 小结 257
第11章 高级复制 258
11.1 设计一个合并复制 258
11.2 配置复制代理 260
11.3 深入了解DISTRIBUTION数据库 266
11.4 对复制进行监视 269
11.4.1 使用Replication Monitor 270
11.4.2 复制警告 273
11.5 对复制过程进行故障检测 273
11.5.1 检查错误日志 274
11.5.2 配置和监视复制警告 274
11.5.3 检验SQL Server服务程序 274
11.5.4 测试互联性 275
11.6 使用复制脚本 276
11.7 向外部主机复制信息 278
11.7.1 向外部订户服务器复制信息 279
11.7.2 从外部出版商服务器复制信息 280
11.8 使用SQL Server复制监视器 280
11.9 维护复制 281
11.9.1 存储空间管理 281
11.9.2 备份策略 281
11.10 监视SQL Server复制的性能 282
11.10.1 使用Windows 2000性能监视器 282
11.10.3 浏览复制代理历史 283
11.10.2 使用系统存储过程 283
11.11 小结 284
第12章 SQL Server的规划、维护以及故障检测 285
12.1 容量规划 285
12.1.1 估计一个数据库的最小规模 285
12.1.2 估计表中的数据量 286
12.1.3 估计一张表中的页数 286
12.1.5 簇索引和非簇索引的比较 287
12.1.6 更深入地考虑索引规模问题 287
12.1.4 估计索引中的数据量 287
12.2 维护SQL Server 288
12.2.1 开发一个数据库维护计划 289
12.2.2 设置系统自动完成数据库维护计划作业 291
12.3 使用SQL Server升级向导程序后出现的故障检测问题 293
12.3.1 删除SQL Server 7 294
12.3.2 对升级过程进行故障检测 294
12.3.3 指定兼容性等级 295
12.3.4 理解向后兼容的细节问题 296
12.4 对SQL Server的自动管理进行故障检测 297
12.5 对复制过程进行故障检测 301
12.6 调试存储过程和触发器 303
12.7 有关工作环境的考虑因素 306
12.7.1 大小写区分特性 306
12.7.2 为空性以及ANSI兼容性设置 307
12.7.3 特定区域的设置选项 311
12.8 小结 312
第13章 Transact-SQL语言简介 313
13.1 理解语句类型 313
13.1.1 数据定义语言(DDL)语句 313
13.1.3 数据处理语言(DML)语句 314
13.1.2 数据控制语言(DCL)语句 314
13.1.4 控制元素 315
13.2 了解任务的划分 315
13.2.1 创建对象 315
13.2.2 控制数据 317
13.2.3 控制对象 323
13.2.4 进行安全管理 324
13.2.5 合并方法 326
13.2.6 全限定的对象名 328
13.2.7 关于联结操作的介绍 329