第1部分 企业计算环境下的SQL Server 1
第1章 客户/服务器计算环境介绍 1
1.1 客户/服务器之前的计算方式 1
1.1.1 大型机和基于主机的结构 1
1.1.2 PC LAN计算 2
1.1.3 客户/服务器 2
1.2 传统的客户/服务器 2
1.3 N级结构 3
1.4 Internet作为客户/服务器平台 4
1.4.1 胖客户和瘦客户 5
1.5 本章小结 6
第2章 Microsoft SQL Server和Windows NT企业计算 7
2.1 什么是企业计算 7
2.2 Windows NT企业版 7
2.2.1 Transaction Server 8
2.2.2 Message Queue Server 8
2.2.3 Cluster Server 9
2.3 统一数据访问 9
2.4 SQL Server在企业计算中的作用 10
2.4.1 OLE DB支持 10
2.4.2 并行查询支持 10
2.4.3 分布式查询 11
2.4.4 簇集支持和无故障支持 11
2.5 本章小结 12
第2部分 安装和升级 13
第3章 SQl Server的安装 13
3.1 硬件和软件需求 13
3.1.1 软件需求 15
3.2 一步步地安装服务器 15
3.2.1 安装的版本 16
3.2.2 升级一个已有的数据库 17
3.2.3 安装类型 18
3.2.4 SQL Server的程序和数据位置 19
3.2.5 字符集 20
3.2.6 排序顺序 21
3.2.7 Unicode 21
3.2.8 网络库(协议) 21
3.3 SQL Server和SQL Server Agent用户账号 23
3.3.1 自动启动SQL Server和SQL Agent 23
3.3.2 检查安装内容 24
3.4 使用SMS来安装 24
3.5 自动安装 24
3.6 Microsoft English Query 24
3.7 OLAP Services 25
3.8 本章小结 26
第4章 客户安装 27
4.1 客户安装 27
4.1.1 SQL Server客户配置实用工具 29
4.1.2 配置ODBC数据源 29
4.1.3 客户需求 30
4.2 网络协议支持 30
4.2.1 网络协议 30
4.2.2 客户连接故障排除 32
4.3 安装ODBC 34
4.3.1 ODBC连接故障排除 34
4.3.2 OLE DB 35
4.4 通过Internet连接SQL Server 35
4.4.1 通过Internet的安全连接 36
4.4.2 为指定端口配置SQL Server 36
4.4.3 通过Microsoft Proxy Server来连接SQL Server 36
4.5 本章小结 37
第5章 升级以前的版本 38
5.1 升级前的考虑 38
5.1.1 用一台机器还是两台机器 39
5.1.2 数据转换方法 39
5.1.3 升级核对清单 40
5.2 运行SQL Server Upgrade Wizard 41
5.2.1 选择数据转换选项 41
5.2.2 设置登录信息 43
5.2.3 选择代码页 43
5.2.4 选择要升级的数据库 44
5.2.5 创建新的数据库 45
5.2.6 设置系统配置选项 46
5.2.7 完成Upgrade Wizard 48
5.2.8 升级的结果 48
5.3 升级之后 49
5.4 本章小结 50
第6章 保持向后兼容 51
6.1 向后兼容为什么很重要 51
6.2 向后兼容级别的详细说明 52
6.2.1 影响向后兼容级别的第1组特性 52
6.2.2 影响向后兼容级别的第2组特性 53
6.2.3 影响向后兼容级别的第3组特性 54
6.2.4 影响向后兼容级别的第4组特性 54
6.3 本章小结 55
第3部分 SQL Server数据库结构 56
第7章 物理数据库结构 56
7.1 SQL Server存储结构 56
7.1.1 数据页和盘区 56
7.2 数据库文件和文件组 63
7.2.1 按需分配磁盘管理 64
7.2.2 主数据库文件 65
7.2.3 辅助数据库文件 65
7.2.4 日志文件 66
7.3 表 67
7.3.1 放松了对表容量和维数的限制 67
7.3.2 簇表 67
7.3.3 堆表 67
7.4 索引 68
7.4.1 簇索引 69
7.4.2 非簇索引 70
7.4.3 使用行定位器改进设计 72
7.5 本章小结 72
第8章 逻辑数据库结构 74
8.1 数据类型 74
8.1.1 字符和二进制数据类型 74
8.1.2 char,nchar,varchar和nvarchar 75
8.1.3 uniqueidentifier 77
8.1.4 timestamp 77
8.1.5 文本和图像数据 80
8.1.6 datetime数据类型 83
8.1.7 逻辑数据类型:bit 85
8.1.8 数值型数据类型 85
8.1.9 数据类型同义词 89
8.1.10 自定义数据类型 89
8.2 视图 90
8.2.1 视图简化了数据的检索和修改操作 92
8.2.2 视图可以作为一种安全机制 92
8.2.3 数据修改与视图 93
8.2.4 使用WITHCHECK OPTION创建视图 93
8.2.5 用WITH ENCRYPTION创建视图 94
8.3 约束 95
8.3.1 PRIMARY KEY和UNIQUE约束 97
8.3.2 引用完整性约束——FOREIGHKEY 97
8.3.3 CHECK约束 98
8.3.4 约束的使用规则 99
8.4 规则 99
8.4.1 规则的用法 100
8.4.2 规则限制 100
8.5 缺省值 101
8.5.1 声明缺省值 101
8.5.2 绑定缺省值 102
8.5.3 缺省值用法 102
8.5.4 何时应用缺省值 103
8.5.5 UPDATE时指定缺省值 105
8.6 使用规则和缺省值时的限制 105
8.7 存储过程 106
8.7.1 存储过程的优点 106
8.7.2 在SQL Server 7.0中的性能改善 107
8.7.3 推迟了名字分析 110
8.7.4 带输入参数和缺省值来执行 110
8.7.5 输出参数 112
8.7.6 返回过程状态 113
8.7.7 SQL Server状态代码 113
8.7.8 在存储过程中使用光标 114
8.7.9 使用存储过程的规则和限制 114
8.7.10 远程存储过程 115
8.7.11 使用Microsoft Visual Basic和Visual Studio调试存储过程 115
8.8 触发器 116
8.8.1 触发器的好处和用途 116
8.8.2 创建触发器 117
8.8.3 在列更新时执行触发器 118
8.8.4 Inserted和deleted表 119
8.8.5 触发器限制 121
8.8.6 嵌套的触发器 121
8.8.7 递归的触发器 122
8.8.8 用触发器强制引用完整性 122
8.9 系统数据厍 126
8.9.1 master 126
8.9.2 msdb 126
8.9.3 model 126
8.9.4 tempdb 126
8.10 系统表 127
8.10.1 系统类 127
8.10.2 数据库类 128
8.10.3 复制类 130
8.10.4 msdb中的系统表 130
8.11 系统存储过程 131
8.12 系统信息方案视图 133
8.12.1 对直接查询系统表的警告 134
8.12.2 SQL Server ANSI兼容视图 134
8.13 SQL-DMO和SQL-NS 135
8.14 ODS和扩展存储过程 135
8.15 本章小结 137
第4部分 SQL Server的管理任务和管理工具 138
第9章 SQL Server Enterprise Manager 138
9.1 在Enterprise Manager中建立服务器组并注册SQL Server 138
9.1.1 使用Registration Wizard来注册服务器 138
9.1.2 服务器组 139
9.2 安全性 140
9.2.1 角色 140
9.2.2 登录 140
9.3 创建数据库 142
9.4 创建备份设备 143
9.5 服务器活动 143
9.5.1 监视服务器 144
9.5.2 规划任务 144
9.5.3 警告 145
9.5.4 错误日志 145
9.6 服务器配置 146
9.6.1 服务器选项 146
9.6.2 安全性选项 147
9.6.3 改变配置 147
9.7 系统工具 148
9.7.1 数据库备份和恢复 148
9.7.2 数据库对象传送 149
9.7.3 查询工具ISQL/w 149
9.8 使用可视数据库工具 150
9.8.1 使用Database Diagrammer 150
9.8.2 使用Query Designer 152
9.9 数据库管理 154
9.9.1 表 154
9.9.2 索引 155
9.9.3 触发器、视图和存储过程 155
9.9.4 用户定义的数据类型 157
9.10 对象权限 157
9.10.1 按用户设置权限 157
9.10.2 按对象设置权限 158
9.11 复制 158
9.11.1 安装出版者 158
9.11.2 设置订购者 159
9.12 获取帮助 160
9.13 本章小结 160
第10章 安全性和用户管理 161
10.1 SQL Server安全性概述 161
10.1.1 身份认证 161
10.1.2 权限 162
10.2 SQL Server安全性:登录 162
10.3 SQL Server安全性:用户 162
10.3.1 dbo 163
10.3.2 guest 163
10.3.3 SQL Server安全性:角色 163
10.3.4 public角色 163
lO.3.5 固定的服务器角色 163
10.3.6 固定的数据库角色 165
10.4 配置Windows NT身份认证 166
10.5 管理SQL Server登录 167
10.5.1 运行Create Login Wizard 168
10.6 管理SQL Server用户 170
10.7 管理SQL Server角色 172
10.8 管理SQL Server权限 173
10.9 SQL server的权限分配 174
10.9.1 public 175
10.9.2 public和guest 175
10.9.3 为用户定义的角色指定权限 175
10.9.4 使用视图来指定权限 175
10.9.5 使用存储过程来指定权限 175
10.9.6 使用应用程序角色来指定权限 175
10.9.7 加密 175
10.10 本章小结 176
第11章 SQL Server Agent 177
11.1 SQL Server Agent概述 177
11.1.1 启动账号 177
11.1.2 邮件配置文件 178
11.1.3 用户连接 178
11.2 创建作业 179
11.2.1 运行Create Job Wizard 179
11.2.2 定义作业属性 182
11.2.3 定义作业步骤 183
11.2.4 定义作业规划 184
11.2.5 定义作业通告 184
11.2.6 使用SQL Server Agent错误日志 184
11.2.7 浏览作业历史 184
11.2.8 系统表 184
11.3 配置警告 185
11.3.1 运行Create Alert Wizard 185
11.3.2 定义警告属性 187
11.3.3 定义警告响应 187
11.4 配置操作员 187
11.5 本章小结 189
第12章 SQL Server备份、还原和恢复 190
12.1 为什么备份 190
12.2 角色和职责 190
12.3 备份类型 191
12.4 备份设备 192
12.4.1 Microsoft Tape Format 192
12.4.2 磁带设备 192
12.4.3 磁盘设备 192
12.4.4 命名管道设备 192
12.4.5 多设备 193
12.4.6 介质集和介质家族 193
12.4.7 添加备份设备 193
12.5 SQL Server 7.0备份功能 194
12.5.1 使用SQL Server Enterprise Manager备份数据库 195
12.6 备份和恢复命令 195
12.6.1 备份数据库 196
12.6.2 使用SQL Server Enterprise Manager备份数据库 199
12.6.3 备份事务日志 200
12.6.4 用SQL Enterprise Manager备份事务日志 202
12.6.5 恢复数据库 203
12.6.6 使用SQL Server Enterprise Manager恢复数据库 204
12.6.7 灾难后的恢复 205
12.6.8 恢复事务日志 206
12.6.9 恢复文件或文件组 207
12.6.10 恢复至某一时刻 208
12.6.11 备份和还原历史 209
12.7 其他备份考虑 209
12.7.1 备份的频率 209
12.7.2 捕捉统计值 210
12.8 事务日志 210
12.8.1 监视可用的日志空间 211
12.9 制定备份和恢复计划 211
12.9.1 使用待命服务器 211
12.9.2 系统数据库 212
12.9.3 用户数据库 213
12.9.4 超大规模数据库考虑 214
12.10 本章小结 215
第13章 数据库维护 216
13.1 Database Maintenance Plan Wizard 216
13.1.1 选择数据库 217
13.1.2 更新数据库优化信息 217
13.1.3 检查数据库完整性 219
13.1.4 指定数据库备份计划 219
13.1.5 指定备份的磁盘目录 220
13.1.6 指定事务日志备份计划 221
13.1.7 指定事务日志备份磁盘目录 221
13.1.8 生成事务报表 222
13.1.9 维护历史 223
13.1.10 完成Database Maintenance Plan Wizard 224
13.2 数据一致性检查程序 224
13.2.1 检测并解决数据库错误 224
13.2.2 跟踪标志和其他有用命令 226
13.3 本章小结 227
第14章 多服务器管理支持 229
14.1 创建主SQL Server Agent 229
14.2 支持目标服务器 230
14.3 多服务器作业 230
14.4 事件传递 232
14.5 系统表 232
14.6 本章小结 233
第15章 连接的服务器和远程服务器管理 234
15.1 连接的服务器与远程服务器 234
15.1.1 远程服务器 234
15.1.2 连接的服务器 234
15.2 添加、丢弃和配置连接的服务器 235
15.2.1 sp-addlinkedserver 236
15.2.2 sp-dropserver 238
15.2.3 sp-serveroption 238
15.3 将本地登录映射至连接的服务器的登录 240
15.3.1 sp-addlinkedsrvlogin 240
15.3.2 sp-droplinkedsrvlogin 242
15.3.3 sp-helplinkedsrvlogin 242
15.4 通过Enterprise Manager设置连接的服务器 243
15.5 本章小结 245
第16章 使用BCP来导入和导出数据 246
16.1 有日志操作和无日志操作 246
16.1.1 并行装入 247
16.2 批量复制程序 247
16.2.1 批处理 248
16.2.2 文件数据类型 249
16.2.3 格式文件 249
16.2.4 使用视图 255
16.2.5 装入图像数据 255
16.2.6 为BCP给出提示 256
16.3 BULK INSERT命令 257
16.4 改善装入性能 258
16.5 使用批处理文件 260
16.6 本章小结 262
第17章 运行SQL Server Service Manager 263
17.1 使用Task Tray来启动和停止SQL Server的服务 263
17.2 运行Service Manager的多个实例 265
17.3 本章小结 265
第18章 SQL Server命令行实用工具 266
18.1 BCP 266
18.2 数据转换服务实用工具 266
18.3 ISQL/OSQL 267
18.4 Makepipe和Readpipe 267
18.5 ODBCcmpt 268
18.6 ODBCPing 268
18.7 Regrebld 268
18.8 复制实用工具 268
18.8 SQLDiag 269
18.9 SQLMaint 269
18.11 SQLServer 270
18.12 VSwitch 270
18.13 本章小结 271
第19章 管理超大规模SQL Server数据库 272
19.1 我有一个VLDB 272
19.2 VLDB维护讨论 272
19.2.1 备份和恢复数据库 272
19.2.2 对数据库执行一致性检查 273
19.2.3 更新统计值 273
19.2.4 重建索引 274
19.2.5 清空数据和归档数据 274
19.2.6 划分数据 276
19.3 本章小结 279
第20章 复制 280
20.1 什么是复制 280
20.2 复制组件 280
20.2.1 出版者、分发者和订购者比喻 280
20.2.2 筛选论文 281
20.2.3 订购 283
20.2.4 匿名订购 283
20.2.5 分发数据库 283
20.3 复制代理 283
20.3.1 快照代理 283
20.3.2 日志阅读器代理 284
20.3.3 分发代理 284
20.3.4 合并代理 284
20.4 规划SQL Server复制 284
20.4.1 耗时和复制数据的延迟 284
20.4.2 站点自治 285
20.4.3 划分数据 285
20.4.4 数据分发方法 285
20.5 SQL Server复制类型 286
20.5.1 快照复制 286
20.5.2 事务复制 287
20.5.3 合并复制 289
20.6 复制方案 290
20.6.1 中心出版者 290
20.6.2 使用远程分发的中心出版者 290
20.6.3 出版订购者 291
20.6.4 中心订购者 292
20.6.5 多个出版者和多个订购者 293
20.7 设置复制 293
20.7.1 启用出版 294
20.7.2 创建一个出版物 296
20.7.3 创建订购 298
20.8 监视复制 301
20.6.1 SQL语句 301
20.8.2 SQL Server Enterprise Manager 301
20.8.3 Performance Monitor 302
20.8.4 在异构环境中复制 302
20.8.5 复制给Internet订购者 303
20.8.6 配置出版者或分发者监听TCP/IP 303
20.8.7 配置出版物使用FTP 303
20.8.8 配置订购使用FTP 303
20.9 本章小结 304
第5部分 Transact-SQL 305
第21章 在SQL Server 7.0中使用Transact-SQL 305
21.1 SQL Server 7.0中的新增内容 305
21.1.1 Unicode支持 305
21.1.2 ALTER TABLE,ALTER PROCEDURE,ALTER TRIGGER和ALTER VIEW 305
21.1.3 T-SQL和ANSI/ISO SQL-92 306
21.1.4 光标增强之处 306
21.2 创建数据库对象 306
21.3 表 307
21.3.1 SQL Server对象名 308
21.3.2 列属性 308
20.3.3 标识列 309
21.4 重命名对象 310
21.5 往表中添加列 310
21.6 临时表 310
21.6.1 全局和永久临时表 311
21.7 SELECT,INSERT,UPDATE和DELETE 311
21.7.1 SELECT语句 311
21.7.2 GROUP BY和HAVING 313
21.7.3 CUBE,ROLLUP和GROUPING函数 314
21.7.4 连接表 316
21.7.5 子查询 317
21.7.6 使用INSERT来添加行 318
21.7.7 使用UPDATE来修改行 319
21.7.8 使用DELETE来删除行 319
21.7.9 SQL Server函数 319
21.7.10 串函数 319
21.7.11 数学函数 321
21.7.12 日期函数 321
21.7.13 系统函数 322
21.7.14 无参数函数 324
21.7.15 集合函数 325
21.8 编程构造语句 326
20.8.1 IF语句 327
21.8.2 WHILE,BREAK和CONTINUE 327
21.8.3 RETURN 327
21.8.4 GOTO 328
21.8.5 WAITFOR 328
21.8.6 EXECUTE 328
21.8.7 批处理 329
21.8.8 注释 330
21.8.9 局部变量 330
21.8.10 早期版本中被称为全局变量的函数 331
21.8.11 RAISERROR 334
21.8.12 SET选项 336
21.9 光标 342
21.9.1 使用方式 343
21.9.2 光标例子和一些语法 343
21.9.3 使用光标来更新 347
21.9.4 滚动功能 348
21.9.5 INSENSITIVE光标 348
21.9.6 光标和并发能力 348
21.9.7 API光标 348
21.9.8 避免光标 349
21.10 本章小结 351
第22章 事务管理和分布式事务 352
22.1 SQL Server 7.0中的新功能 352
22.2 事务处理 352
22.2.1 事务和锁定 352
22.2.2 SQL Server如何跟踪事务 353
22.2.3 自动提交的事务 354
22.2.4 用户定义的事务 355
22.2.5 隐式事务 356
22.2.6 嵌套的事务 356
22.3 事务和触发器 358
22.4 事务和存储过程 359
22.5 编写高效率的事务 362
22.6 长时间运行的事务 363
22.7 绑定连接 363
22.7.1 如何绑定连接 364
22.7.2 绑定多个应用程序 364
22.8 分布式事务 365
22.8.1 两阶段提交协议 365
22.8.2 分布式事务协调器(MS DTC) 366
22.8.3 故障排除 367
22.9 本章小结 368
第6部分 性能与调整技术 369
第23章 数据库设计和性能 369
23.1 逻辑数据库设计讨论 369
23.1.1 规范化条件 369
23.1.2 规范化规则 369
23.1.3 规范化的优点 370
23.1.4 规范化的缺点 370
23.2 反规范化数据库 370
23.2.1 反规范化规则 370
23.2.2 基本的反规范化技术 371
23.3 索引与性能 374
23.3.1 评价索引的作用 374
23.3.2 分布页 375
23.3.3 索引密度 378
23.4 索引设计规则 379
23.4.1 簇索引指示 379
23.4.2 非簇索引指示 380
23.4.3 索引覆盖 380
23.4.4 复合索引和多索引 380
23.5 SQL Server索引维护 381
23.5.1 设置填充因子 382
23.5.2 重新应用填充因子 383
23.6 更新与性能 383
23.6.1 推迟更新 383
23.6.2 即时更新 383
23.7 数据库文件组与性能 384
23.8 RAID技术 384
23.8.1 RAID Level 0 385
23.8.2 RAID Level 1 385
23.8.3 RAID Level 5 386
23.8.4 SQL Server常用的RAID级 386
23.9 本章小结 387
第24章 查询分析 388
24.1 SQL Server 7.0的新功能 388
24.2 Query Analyzer的图形执行规划 391
24.2.1 分析器工具提示 393
24.2.2 逻辑操作符和物理操作符 394
24.2.3 分析存储过程 403
24.3 SHOWLAN-ALL和SHOWPLAN-TEXT 403
24.4 统计值 406
24.4.1 Statistics io 406
24.4.2 统计时间 407
24.4.3 statistics profile 408
24.5 其他分析工具 408
24.6 本章小结 409
第25章 优化 410
25.1 什么是查询优化器 410
25.1.1 优化器基础 410
25.1.2 SQL Server 7.0改进之处 411
25.2 统计值 412
25.2.1 自动更新统计值 412
25.2.2 数据采样 412
25.2.3 手工控制统计值 413
25.3 查询优化算法 413
25.3.1 连接处理策略 413
25.3.2 多索引支持 416
25.3.3 数据仓库和大数据库策略 416
25.3.4 谓词传递 417
25.3.5 创新的Group-By用法 418
25.4 查询调整提示 418
25.4.1 查询调整基本技巧 418
25.4.2 SQL Server Profiler 419
25.4.3 索引调整向导 419
25.4.4 查询调节器 422
25.4.5 注意事项 423
25.5 本章小结 424
第26章 高级查询处理 425
26.1 并行查询 425
26.2 分布式查询 428
26.2.1 设置分布式环境 429
26.2.2 查询链接的服务器 431
26.3 本章小结 433
第27章 使用SQL Server Profiler 434
27.1 SQL Server Profiler结构 434
27.2 创建跟踪 435
27.2.1 General属性 436
27.2.2 事件 437
27.2.3 数据列 440
27.2.4 筛选器 441
27.3 重放跟踪数据 443
27.4 保存和导出跟踪结果 443
27.4.1 导出数据至Showplan 443
27.4.2 导出数据至Index Tuning Wizard 443
27.5 SQL server扩展存储过程 444
27.6 本章小结 445
第28章 监视SQL Server性能 446
28.1 Windows NT Performance Monitor 446
28.1.1 性能视图 446
28.1.2 监视各性能值 447
28.2 Windows NT性能计数器 447
28.2.1 监视处理器 448
28.2.2 监视内存 448
28.2.3 监视磁盘使用 449
28.2.4 监视网卡 450
28.3 SQL Server性能计数器 450
28.3.1 SQL Server:Cache Manager对象 451
28.3.2 监视SQL Server磁盘活动 452
28.3.3 锁 452
28.3.4 用户 453
28.3.5 过程高速缓存 453
28.3.6 事务日志 453
28.3.7 用户自定义的计数器 454
28.4 SNMP支持 454
28.5 使用DBCC来检查性能 455
28.5.1 MEMUSAGE 456
28.5.2 SQLPERF 456
28.5.3 PERFMON 457
28.5.4 SHOWCONTIG 457
28.5.5 PROCCACHE 457
28.5.6 INPUTBUFFER和OUTPUTBUFFER 457
28.6 SQL Server Enterprise Manager 458
28.6.1 活动 458
28.6.2 锁 458
28.7 本章小结 458
第29章 配置、调整和优化SQL Server选项 459
29.1 配置变量 459
29.2 动态调节的变量和高级变量 460
29.3 使用SQL Server Enterprise Manager来设置配置选项 461
29.3.1 Affinity Mask 462
29.3.2 Allow Update 463
29.3.3 Cost Threshold for Parallelism 463
29.3.4 Cursor Threshold 464
29.3.5 Database Size 464
29.3.6 Default Comparison Style 464
29.3.7 Default Language 465
29.3.8 Default Locale ID 465
29.3.9 Default Sortorder ID 465
29.3.10 Fill Factor 465
29.3.11 Language in Cache 465
29.3.12 Locks 466
29.3.13 Max Additional Query Mem 466
29.3.14 Max Async IO 466
29.3.15 Max Degree of Parallelism 466
29.3.16 Max Query Wait 467
29.3.17 Max Text Repl Size 467
29.3.18 Max Worker Threads 467
29.3.19 Media Retention 467
29.3.20 Memory 468
29.3.21 Nested Triggers 468
29.3.22 Network Packet Size 469
29.3.23 Priority Boost 469
29.3.24 Recovery Interval 469
29.3.25 Remote Access 470
29.3.26 Remote Login Timeout 470
29.3.27 Remote Proc Trans 470
29.3.28 Remote Query Timeout 470
29.3.29 Resource Timeout 470
29.3.30 Set Working Set Size 471
29.3.31 Show Advanced Options 471
29.3.32 Spin Counter 471
29.3.33 Time Slice 471
29.3.34 User Connections 472
29.3.35 User Options 472
29.4 本章小结 473
第30章 锁定和性能 474
30.1 锁定需求 474
30.2 锁资源 474
30.3 SQL Server锁类型 475
30.3.1 共享锁 476
30.3.2 更新锁 476
30.3.3 独占锁 477
30.3.4 意向锁 477
30.3.5 规划锁 477
30.4 锁类型和Syslockinfo 478
30.5 SQL Server锁粒度 479
30.6 锁兼容性 480
30.7 乐观锁定 480
30.7.1 使用时间戳数据类型的乐观锁定 481
30.7.2 使用INT数据类型的乐观锁定 481
30.7.3 乐观锁定——服务器端版本与客户端版本 482
30.8 索引锁定 483
30.9 在SQL Server中使用事务隔离级 483
30.9.1 读未提交 484
30.9.2 读已提交 484
30.9.3 可重复读 485
30.9.4 可串行化 485
30.10 串行化和键范围锁定 486
30.11 锁定的表提示 488
30.11.1 事务隔离级提示 489
30.11.2 锁粒度提示 490
30.12 检查当前锁活动 491
30.12.1 使用sp-lock存储过程 491
30.12.2 使用SQL Server Enterprise Manager浏览锁定活动 492
30.12.3 使用Performance Monitor浏览当前锁的数量 493
30.13 死锁和最小化锁争用 494
30.14 避免死锁 494
30.14.1 处理和检查死锁 496
30.15 本章小结 498
第7部分 与BackOffice的集成 499
第31章 SQL Mail 499
31.1 设置你的邮件提供者 499
31.1.1 Microsoft Exchange Server 499
31.1.2 Microsoft Windows NT Mail 499
31.1.3 Post Office Protocol 3 Server 499
31.2 使用SQL Mail 500
31.3 使用SQL Server Agnet Mail 501
31.4 SQL Mail存储过程和扩展存储过程 502
31.4.1 xp-startmail 503
31.4.2 xp-sendmail 503
31.4.3 xp-readmail 505
31.4.4 xp-findnextmsg 507
31.4.5 xp-deletemail 507
31.4.6 sp-processmail 507
31.4.7 xp-stopmail 508
31.5 本章小结 508
第32章 Internet Information Server和Index Server 509
32.1 IIS和Active Server Pages 509
32.2 全文检索与数据库 512
32.3 Index Server与数据文件的全文检索 515
32.4 本章小结 517
第33章 Microsoft Transaction Server 518
33.1 MTS概述 518
33.1.1 为何使用Transaction Server 518
33.1.2 设置Transaction Server 520
33.1.3 了解MTS的层次 520
33.2 构造MTS组件 521
33.2.1 ObjectContext 521
33.2.2 用于数据库活动的方法 522
33.3 安装MTS组件 523
33.3.1 创建一个包 523
33.3.2 添加一个组件 524
33.3.3 设置组件属性 524
33.4 配置安全性 526
33.4.1 包的安全性选项 526
33.4.2 创建角色 526
33.4.3 设置组件之间的角色成员关系 527
33.4.4 如何让MTS与SQL Server安全性关联 528
33.4.5 方案1——每个用户 528
33.4.6 方案2——每个包 528
33.4.7 其他安全性考虑 529
33.5 运行一个MTS应用程序 529
33.5.1 启动运行程序 530
33.5.2 测试权限 531
33.5.3 故障排除 531
33.6 使用连接缓冲 532
33.6.1 改变驱动程序超时值 532
33.6.2 检查连接池行为 533
33.7 本章小结 533
第34章 使用OLAP Server 535
34.1 什么是OLAP 535
34.1.1 OLAP与OLTP 537
34.1.2 MOLAP 538
34.1.3 ROLAP 538
34.1.4 HOLAP 538
34.2 数据仓库环境 538
34.2.1 数据转换服务 539
34.2.2 库房 540
34.2.3 决策支持服务 540
34.3 OLAP Manager 541
34.4 创建OLAP数据库 542
34.4.1 添加数据源 543
34.4.2 添加维数 544
34.4.3 构造立方体 545
24.4.4 处理立方体 546
34.4.5 通过OLAP Manager查看数据立方体 548
34.4.6 修改数据立方体 549
34.4.7 浏览多维立方体 551
34.4.8 查询分析和优化 552
34.4.9 划分立方体 552
34.4.10 创建一个虚拟立方体 553
34.5 操作关系数据库 554
34.5.1 BigPubs数据库 554
34.5.2 关系数据库的局限性 557
34.5.3 传递数据给用户 557
34.5.4 多维表达式 558
34.5.5 ActiveX数据对象的多维模型 559
34.6 本章小结 560
第35章 数据转换服务 561
35.1 使用SQL Server 7.0构造数据仓库 561
35.2 运行DTS Wizard 562
35.3 定义DTS包 565
35.3.1 任务 565
35.3.2 步骤 565
35.3.3 数据转换 566
35.3.4 数据驱动的查询 566
35.4 元数据 569
35.5 本章小结 571
第36章 在Internet/Intranet上使用SQL Server来提供数据服务 572
36.1 了解客户许可的内容 572
36.2 连接SQL Server至Internet或Intranet 573
36.3 使用Web Assistant Wizard 573
36.4 本章小结 579
第8部分 附录 581
附录A 技术规格 581
附录B 故障排除 583
附录C 定义系统管理和命名标准 586
附录D 编程工具和接口 592