第Ⅰ部分 介绍Microsoft SQL Server 2000 1
第1章 Microsoft SQL Server 2000概述 3
1.1 SQL Server系统 3
1.1.1 客户机/服务器系统 3
1.1.2 桌面系统 5
1.2 SQL Server 2000的新特性和增强功能 6
1.2.1 服务器的增强功能 6
1.2.2 增强的管理 9
1.2.4 其他增强功能 11
1.2.3 增强的复制 11
小结 12
第2章 Microsoft windows 2000平台 13
2.1 Windows 2000家族 13
2.1.1 Windows 2000 Professional 13
2.1.2 Windows 2000 Server 14
2.1.3 Windows 2000 Advanced Server 14
2.1.4 Windows 2000 Datacenter Server 14
2.1.5 Windows 2000操作系统家族的差异 14
2.2.1 可靠性 15
2.2 Windows 2000组件和功能 15
2.2.2 安全性 16
2.2.3 便于使用 17
2.2.4 系统的管理和部署 19
2.2.5 机动灵活性 22
2.2.6 性能 24
2.2.7 Internet访问 25
2.2.8 Active Directory 26
小结 28
3.1 SQL Server DBA的基本职责和可选职责 31
第3章 Microsoft SQL Server DBA的角色和任务 31
3.1.1 安装和配置 32
3.1.2 安全性 33
3.1.3 操作 34
3.1.4 服务级别 34
3.1.5 系统正常运行时间 36
3.1.6 记录 37
3.1.7 设计和开发 39
3.1.8 其他 41
3.2.1 如何与用户群体交往 42
3.2 DBA提示和技巧 42
3.2.2 系统调整 43
3.2.3 处理危机 43
小结 44
第Ⅱ部分 安装和设置 45
第4章 设计Microsoft SQL Server系统 47
4.1 系统要求 47
4.1.1 系统应用程序 48
4.1.2 服务级别要求 49
4.2 系统组件和选项 50
4.2.1 Windows 2000版本 51
4.2.2 SQL Server版本 52
4.2.3 版本比较 53
4.2.4 系统选项 54
4.3 数据库规划 55
4.3.1 事务日志 55
4.3.2 数据文件 56
4.4 应用程序 56
4.4.1 结构 56
小结 58
4.4.2 性能和伸缩性 58
第5章 I/0子系统配置和规划 61
5.1 磁盘驱动器性能特性 61
5.1.1 磁盘驱动器构造 62
5.1.2 磁盘驱动器特性 63
5.1.3 磁盘驱动器规格说明 65
5.1.4 磁盘驱动器性能 65
5.1.5 磁盘性能限制问题的解决方案 67
5.3.1 高速缓存控制器 68
5.3 I/O子系统概念 68
5.2 RAID概述 68
5.3.2 磁盘驱动器高速缓存 69
5.3.3 内部与外部RAID 69
5.3.4 存储区域网 70
5.3.5 控制器和总线带宽问题 71
5.3.6 高端I/O子系统 71
5.3.7 升降排序 71
5.3.8 磁盘可靠性 72
5.4 常见的RAID等级概述 73
5.4.1 RAID 0 74
5.4.2 RAID 1 75
5.4.3 RAID 5 76
5.4.4 RAID 10 79
5.5 RAID等级性能比较 80
5.5.1 读取性能 80
5.5.2 写性能 81
5.5.3 磁盘计算 82
5.5.4 RAID比较 83
5.6 I/O延迟与SQL Server 84
5.7 规划SQL Server磁盘布局 85
5.7.1 确定I/O需求 85
5.7.2 计划磁盘布局 86
5.7.3 实现配置 87
5.8 I/O子系统技巧与建议 88
小结 89
第6章 容量计划 91
6.1 容量计划的类型 91
6.2 容量计划的历史 93
6.3.1 OLTP事务 94
6.3 事务处理 94
6.3.2 DSS事务 95
6.4 容量计划的原则 96
6.4.1 CPU利用率 97
6.4.2 页错误 100
6.5 内存的容量计划 101
6.5.1 收集内存使用率数据 103
6.5.2 分析内存数据 104
6.6 处理器的容量计划 105
6.6.1 容错 106
6.6.2 收集一个CPU的使用率数据 110
6.6.3 收集多个CPU的使用率的数据 111
6.7 磁盘子系统的容量计划 112
6.7.1 Windows 2000和SQL Server所需的磁盘 113
6.7.2 日志文件的磁盘 113
6.7.3 数据库的磁盘 114
6.7.4 系统需要的磁盘 116
6.7.5 收集磁盘使用数据 116
6.7.6 分析磁盘使用数据 117
6.8.1 收集网络使用数据 118
6.8 网络容量计划分析 118
6.8.2 分析网络使用数据 119
6.9 选择要收集的数据 119
6.9.1 收集进程数据 120
6.9.2 分析进程数据 120
小结 121
第7章 安装SQL Server 2000 123
7.1 服务器安装 123
7.1.1 本地安装 123
7.1.2 远程安装 128
7.1.3 无人参与安装 130
7.2 从早期版本中升级 131
7.2.1 从SQL Server 7升级到SQL Server 2000 131
7.2.2 从SQL Server 6.5升级到SQL Server 2000 131
7.3 客户机安装 138
小结 138
第8章 管理Microsoft SQL Server服务 139
8.1 SQL Server服务 140
8.2 使用SQL Server Service Manager 141
8.3 使用Windows 2000 Service Control Manager 142
8.4 使用SQL Server Enterprise Manager 144
8.4.1 管理SQL Server 144
8.4.2 管理其他服务 151
小结 153
第9章 创建数据库 155
9.1 数据库结构 155
9.1.1 文件 155
9.1.2 文件组 156
9.1.3 规则和建议 160
9.1.4 文件自动扩大 161
9.2 系统数据库 162
9.3 创建数据库 163
9.3.1 使用Create Database Wizard 163
9.3.2 使用Enterprise Manager 168
9.3.3 使用T-SQL命令 170
9.4 查看数据库 173
9.4.1 使用Enterprise Manager 173
9.4.2 使用SQL 174
9.5.1 使用Enterprise Manager 175
9.5 删除数据库 175
9.5.2 使用SQL 176
小结 176
第10章 创建数据库表 177
10.1 建立基础 177
10.2 表基本知识 178
10.2.1 定义数据库表 178
10.2.2 使用系统数据类型 179
10.2.3 使用用户定义的数据类型工作 183
10.3 在文件组中创建表 189
10.4 使用Null值 190
10.5 添加IDENTITY属性 192
10.6 使用Enterprise Manager创建表 193
小结 197
第11章 通过网络配置Microsoft SQL Server 199
11.1 网络服务概述 199
11.2 SQL Server API 201
11.2.1 DB-LIB连通性 201
11.2.3 ODBC连接池 202
11.2.2 ODBC连通性 202
11.2.4 其他API 203
11.3 网络库 203
11.3.1 SQL Server 2000服务器网络实用工具 203
11.3.2 SQL Server 2000客户端网络实用工具 205
11.3.3 SQL Server网络库和协议 207
11.4 网络组件和SQL Server性能 209
11.4.1 软件层——网络协议 210
11.4.2 硬件层 210
11.5.1 监视性能 212
11.5 网络监视 212
11.5.2 确定是否有问题 213
11.5.3 查找网络问题的解决方案 213
小结 214
第12章 Microsoft SQL Server和Microsoft Cluster Services 215
12.1 故障类型 215
12.2 MSCS概述 216
12.2.1 基本概念 218
12.2.2 群集组件 219
12.2.3 群集应用程序类型 224
12.2.4 MSCS模式 226
12.3 群集示例 227
12.3.1 示例1——具有静态加载平衡的高可用性系统 228
12.3.2 示例2——具有最大可用性的热节约系统 228
12.3.3 示例3——部分服务器群集 229
12.3.4 示例4——仅虚拟服务器,无故障转移功能 230
12.4 为群集配置SQL Server 230
12.4.1 计划配置 231
12.4.2 安装SQL Server群集 232
12.5 MSCS之外的其他方法 236
12.4.3 使用三层应用程序 236
小结 237
第Ⅲ部分 使用Microsoft SQL Server 239
第13章 介绍Transact-SQL和SQL Query Analyzer 241
13.1 什么是SQL 241
13.1.1 DDL 242
13.1.2 DML 243
13.2 什么是T-SQL 244
13.3.1 系统存储过程 245
13.3 T-SQL新特性概述 245
13.3.2 系统表 246
13.3.3 函数 247
13.3.4 数据类型 247
13.3.5 语句 248
13.4 如何使用T-SQL 248
13.4.1 ISQL实用工具 249
13.4.2 OSQL实用工具 249
13.4.3 Query Analyzer 250
13.4.4 T-SQL脚本 252
小结 254
第14章 使用Transact-SQL检索数据 255
14.1 SELECT语句 255
14.1.1 SELECT子句 256
14.1.2 FROM子句 260
14.1.3 INTO子句 264
14.1.4 WHERE子句和搜索条件 266
14.1.5 GROUP BY子句 275
14.1.6 HAVING子句 278
14.1.7 ORDER BY子句 280
14.1.8 UNION运算符 283
14.2 T-SQL函数 286
14.3 SELECT的其他用途 288
小结 289
第15章 使用Transact-SQL和Enterprise Manager管理表 291
15.1 使用T-SQL修改表 293
15.1.1 改变列 293
15.1.2 添加列 296
15.1.4 重命名列 297
15.1.3 删除列 297
15.2 使用Enterprise Manager修改表 298
15.2.1 改变列 299
15.2.2 添加列 301
15.2.3 删除列 302
15.2.4 创建和使用数据库图表 302
15.3 改变表的效果 305
15.4 删除表 306
15.4.1 使用T-SQL删除表 306
15.4.2 使用Enterprise Manager删除表 306
小结 308
16.1 默认值 309
第16章 创建和使用默认值、约束与规则 309
16.1.1 使用T-SQL定义和修改默认 310
16.1.2 使用Enterprise Manager定义和修改默认 315
16.2 约束 319
16.2.1 使用T-SQL创建并修改约束 320
16.2.2 使用Enterprise Manager创建和修改约束 328
16.3.1 使用T-SQL创建Rule对象 340
16.3.2 使用Enterprise Manager创建Rule对象 340
16.3 Rule对象 340
小结 342
第17章 创建和使用索引 343
17.1 什么是索引 343
17.2 索引概念 346
17.2.1 索引键 346
17.2.2 索引唯一性 348
17.2.3 索引类型 349
17.3 创建索引 352
17.3.1 使用Create Index Wizard 352
17.3.2 使用Transact-SQL 357
17.3.3 使用填充因子避免页拆分 358
17.3.4 使用Full-Text Indexing Wizard 359
17.3.5 使用存储过程创建全文索引 363
17.3.6 使用全文索引 364
17.4 重新建立索引 364
17.5 使用索引 366
17.5.1 使用提示 367
17.5.2 使用查询优化器 368
17.6.2 何时使用索引 370
17.6.1 有效索引的特征 370
17.6 设计有效索引 370
17.6.3 索引的指导方针 371
小结 371
第18章 创建和使用视图 373
18.1 什么是视图 373
18.2 视图概念 374
18.2.1 视图的类型 374
18.2.2 视图的优点 374
18.3.1 使用T-SQL创建视图 375
18.2.3 视图的限制 375
18.3 创建视图 375
18.3.2 使用Enterprise Manager创建视图 382
18.3.3 使用Create View Wizard创建视图 385
18.3.4 关于视图的提示 387
18.4 修改和删除视图 388
18.4.1 使用Enterprise Manager修改和删除视图 388
18.4.2 使用T-SQL修改和删除视图 391
18.5 SQL Server 2000中的视图增强 391
18.5.1 可更新、分布式的分区视图 392
18.5.2 索引视图 398
小结 399
第19章 理解事务和事务锁定 401
19.1 什么是事务 401
19.2 ACID属性 402
19.2.1 原子性 402
19.2.2 一致性 402
19.2.3 隔离 402
19.3 事务模式 406
19.3.1 自动提交模式 406
19.2.4 持久性 406
19.3.2 显式模式 407
19.3.3 隐式模式 411
19.4 事务重新运行 412
19.4.1 事务重新运行 412
19.4.2 编程重新运行 413
19.4.3 保存点 414
19.5.1 锁定管理特性 415
19.5 事务锁定 415
19.5.2 锁定的级别 416
19.5.3 锁模式 417
19.6 阻塞与死锁 418
19.7 锁定提示 420
小结 422
第20章 理解高级T-SQL 423
20.1 INSERT语句 424
20.1.1 插入行 424
20.1.2 省略列值 425
20.1.3 从另一个表添加行 426
20.2 UPDATE语句 428
20.2.1 更新行 428
20.2.2 使用FROM子句 429
20.2.3 使用衍生表 431
20.3 DELETE语句 431
20.3.1 删除单个行 432
20.3.2 删除全部行 432
20.4 程序设计关键字 433
20.4.1 IF...ELSE 433
20.4.2 WHILE 435
20.4.3 CASE 436
20.4.4 其他关键字 438
小结 439
第21章 创建和管理存储过程 441
21.1 什么是存储过程 441
21.2 创建存储过程 443
21.2.1 使用CREATE PROCEDURE语句 443
21.2.2 使用Enterprise Manager 452
21.2.3 使用Create Stored Procedure Wizard 456
21.3 使用T-SQL管理存储过程 459
21.3.1 ALTER PROCEDURE语句 460
21.3.2 DROP PROCEDURE语句 461
21.3.3 sp-helptext存储过程 461
小结 462
第22章 创建和使用触发器 463
22.1 什么是触发器 463
22.2 SQL Server 2000中的触发器增强功能 464
22.3 何时使用触发器 465
22.4.1 使用CREATE TRIGGER语句 466
22.4 创建触发器 466
22.4.2 使用Enterprise Manager 479
22.5 管理触发器 481
22.5.1 使用T-SQL管理触发器 481
22.5.2 使用Enterprise Manager管理触发器 484
小结 485
第23章 从Internet访问Microsoft SQL Server 487
23.1 Internet编程概念 487
23.1.1 将Windows 2000和IIS 5用作Internet平台 488
23.1.2 使用ODBC数据源 488
23.2 使用ISAPI访问SQL Server 489
23.1.3 选择网络库 489
23.2.1 ISAPI扩展 490
23.2.2 ISAPI筛选 490
23.2.3 ISAPI的局限 491
23.3 使用ASP访问SQL Server 491
23.4 使用XML访问SQL Server 492
小结 493
第24章 载入数据库 495
24.1.1 记录选项 496
24.1 载入操作性能 496
24.1.2 锁定选项 498
24.2 批量复制程序 498
24.2.1 BCP句法 499
24.2.2 使用BCP 502
24.3 BULK INSERT语句 507
24.3.1 BULK INSERT语句 507
24.3.2 使用BULK INSERT 509
24.4 数据转换服务 510
24.4.1 Import Wizard 510
24.4.2 Export Wizard 517
24.5 登台表 522
24.5.1 登台表基础知识 523
24.5.2 使用登台表 523
24.6 SELECT...INTO语句 524
小结 525
第Ⅳ部分 内置服务器特性 527
第25章 组件服务和Microsoft分布式事务处理协调器 529
25.1 组件服务概述 529
25.1.1 COM+应用程序服务 530
25.1.2 MS DTC 531
25.2 Microsoft分布式事务处理协调器 534
25.2.1 MS DTC概述 534
25.2.2 使用MS DTC的范例 535
25.2.3 MS DTC属性 539
25.2.4 程序设计MS DTC 540
25.2.5 管理MS DTC 541
25.2.6 监控MS DTC 541
小结 543
26.1 什么是数据库复制技术 545
第26章 Microsoft SQL Server复制:概述和快照复制 545
26.2 复制概念 546
26.2.1 复制组件 546
26.2.2 复制类型 547
26.2.3 复制数据 548
26.2.4 强制订阅和请求订阅 549
26.2.5 复制代理程序 549
26.3 配置发布和分布 552
26.4.2 配置快照复制 559
26.4.1 快照复制的用法 559
26.4 快照复制 559
26.5 管理复制 586
26.5.1 监控和管理复制代理程序 586
26.5.2 禁用复制 588
26.6 协调快照复制 589
26.6.1 快照复制的属性 589
26.6.2 配置快照复制 590
26.6.3 监控快照系统 593
26.6.4 协调快照系统 594
小结 595
第27章 事务复制 597
27.1 事务复制介绍 597
27.2 使用事务复制 599
27.3 配置事务复制系统 599
27.3.1 配置事务 599
27.3.2 配置Log Reader Agent 609
27.3.3 配置订阅 613
27.4 为事务复制配置、监视和调整分发服务器 624
27.4.1 配置分发服务器 624
27.4.2 监视分发服务器 626
27.4.3 调整分发服务器 627
27.5 为事务复制进行调整 627
27.5.1 事务复制的属性 627
27.5.2 为事务复制进行配置 628
27.5.3 监视事务复制系统 630
27.5.4 调整事务的复制系统 630
27.6 执行事务复制 631
27.6.1 一对多复制 631
27.6.2 多对一复制 631
小结 632
27.6.3 通过WAN进行复制 632
第28章 合并复制 633
28.1 合并复制介绍 633
28.2 合并复制的用途 634
28.3 配置合并复制系统 634
28.3.1 配置发布 635
28.3.2 配置订阅 642
28.4 管理复制 649
28.4.1 监视和管理复制代理程序 649
28.4.2 配置Merge Agent 651
28.4.3 禁止复制 655
28.5 监视和调整Merge Replication 656
28.5.1 合并复制属性 656
28.5.2 配置合并复制 656
28.5.3 监视合并复制系统 657
28.5.4 调整合并复制系统 657
小结 658
第29章 使用Microsoft SQL Server Analysis Services 659
29.1 Analysis Services概述 659
29.1.1 Analysis Services组件 660
29.1.2 OLAP多维数据集 661
29.1.3 增强的SQL Server 2000中的数据分析 663
29.2 安装Analysis Services 665
29.3 使用Analysis Services 667
29.3.1 配置数据源 668
29.3.2 创建OLAP数据库 672
29.3.3 修改现有的OLAP数据库 686
29.3.4 处理数据 688
小结 690
第Ⅴ部分 管理、调整、维护和故障排除 691
第30章 Microsoft SQL Server管理 693
30.1 SQL Server的自动配置功能 693
30.1.1 动态内存管理 693
30.1.2 其他动态内存配置选项 696
30.1.3 统计信息 700
30.1.4 CREATE STATISTICS 701
30.1.5 UPDATE STATISTICS 702
30.1.6 自动文件增长 703
30.1.7 检查点 705
30.2.1 使用Database Maintenance Plan Wizard 706
30.2 数据库维护计划 706
30.2.2 在维护计划中显示作业 714
30.2.3 编辑维护计划 714
小结 715
第31章 管理任务自动化 717
31.1 SQLServerAgent服务 717
31.2 作业 718
31.2.1 创建作业 718
31.2.2 管理作业 730
31.2.3 查看作业历史数据 731
31.3 警报 733
31.3.1 事件信息记录 734
31.3.2 创建一个警报 736
31.4 操作员 741
31.4.1 使用Enterprise Manager创建操作员 741
31.4.2 使用T-SQL创建操作员 743
31.5 SQLServerAgent错误日志 744
小结 746
32.1 备份术语 747
第32章 备份Microsoft SQL Server 747
32.1.1 备份和还原 748
32.1.2 恢复 748
32.2 系统故障 749
32.2.1 硬件故障 749
32.2.2 软件故障 750
32.2.3 人为错误 751
32.3 SQL Server记录 751
32.3.1 事务日志 751
32.3.2 不记录操作 753
32.3.3 SELECT INTO 754
32.3.4 BULK COPY和BCP 755
32.3.5 CREATE INDEX 755
32.3.6 文本操作 755
32.3.7 检查点 755
32.4 备份方法 758
32.4.1 完全备份 758
32.4.2 差异备份 758
32.5 执行备份 759
32.4.5 数据文件备份 759
32.4.4 文件组备份 759
32.4.3 事务日志备份 759
32.5.1 创建逻辑备份设备 760
32.5.2 使用Enterprise Manager进行备份 762
32.5.3 使用T-SQL进行备份 767
32.5.4 使用Create Database Backup Wizard进行备份 771
32.5.5 跟踪备份 775
32.6 安排备份的时间表 775
32.7.1 提高备份性能 777
32.7 改进备份 777
32.7.2 其他技巧 778
小结 778
第33章 还原和恢复数据库 779
33.1 还原方法 779
33.1.1 从完全备份中还原 779
33.1.2 从差异备份中恢复 780
33.1.3 从事务日志备份中还原 780
33.2 执行数据库还原 781
33.2.1 使用Enterprise Manager进行还原 781
33.1.4 在BULK_LOGGED恢复模式下还原数据库 781
33.2.2 使用T-SQL执行还原 785
33.3 计划灾难恢复 788
33.3.1 创建当前配置的文档 789
33.3.2 创建容错环境 789
33.3.3 准备立即恢复 789
33.3.5 日志传送 790
小结 790
33.3.4 用文档记录数据库恢复计划 790
第34章 用户和安全管理 791
34.1 创建和管理用户登录 791
34.1.1 为什么要创建用户登录 792
34.1.2 身份验证模式 792
34.1.3 登录和用户 794
34.1.4 创建SQL Server登录 795
34.1.5 创建SQL Server用户 802
34.2 管理数据库权限 804
34.2.1 服务器权限 804
34.2.2 数据库对象权限 805
34.2.3 数据库语句权限 808
34.3 管理数据库角色 810
34.3.1 创建和修改角色 810
34.3.2 使用固定服务器角色 814
34.4 安全账户委托 815
小结 816
第35章 使用SQL Query Analyzer和SQL Profiler 819
35.1 使用SQL Query Analyzer 820
35.1.1 运行T-SQL语句 820
35.1.2 查看执行计划和修改T-SQL语句 822
35.1.3 使用Object Browser 829
35.2 使用SQL Profiler 832
35.3 优化T-SQL语句 837
35.3.1 优化执行计划 837
35.3.2 选择数据访问方法 837
35.3.3 使用提示 838
小结 841
第36章 解决常见的性能问题 843
36.1 什么是瓶颈 843
36.2.1 系统监视器 844
36.2 发现问题 844
36.2.2 Enterprise Manager 848
36.2.3 sp_who存储过程 852
36.3 常见的性能瓶颈 853
36.3.1 CPU 853
36.3.2 内存 854
36.3.3 I/O子系统 855
36.3.4 有故障的组件 857
36.3.5 应用程序 858
36.4.1 affinity mask选项 859
36.4 SQL Server配置设置 859
36.4.2 lightweight pooling选项 860
36.4.3 max server memory选项 860
36.4.4 min server memory选项 861
36.4.5 recovery interval选项 861
小结 862
第Ⅵ部分 附录 863
附录A Microsoft SQL Server配置参数 865
A.1 参数 865
A.2 参数规范 870
A.3 使用Enterprise Manager修改参数 872
附录B Microsoft SQL Server监视 879
B.1 SQL Server:Access Methods 880
B.2 SQL Server:Backup Device 881
B.3 SQL Server:Buffer Manager 881
B.4 SQL Server:Cache Manager 882
B.5 SQL Server:Databases 883
B.6 SQL Server:General Statistics 884
B.7 SQL Server:Latches 884
B.9 SQL Server:Memory Manager 885
B.8 SQL Server:Locks 885
B.10 SQL Server:Replication Agents 886
B.11 SQL Server:Replication Dist 886
B.12 SQL Server:Replication Logreader 887
B.13 SQL Server:Replication Merge 887
B.14 SQL Server:Replication Snapshot 887
B.15 SQL Server:SQL Statistics 888
B.16 SQL Server:User Settable 888
附录C 889
术语表 893