《Microsoft SQL Server 6.5开发指南 第2版》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)(D.所罗门)David Solomon等著;熊桂喜等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1998
  • ISBN:7302029679
  • 页数:837 页
图书介绍:

目录 1

第1部分 SQL Server体系结构介绍 1

第1章 客户/服务器概念 1

1.1 客户/服务器计算的起源 1

1.1.1 基于主机的计算 2

1.1.2 基于PC/LAN的计算 2

1.2 客户/服务器的特点 4

24.2 升级到SQL Server for Windows NT 6. 5

1.3 关键因素是费用 5

1.4 本章小结 6

第2章 Microsoft客户/服务器体系结构介绍 7

2.1.1 多进程数据库引擎 7

2.1 各种数据库体系结构比较 7

2.1.2 多进程数据库引擎的优缺点 8

2.1.3 单进程、多线程数据库引擎 9

2.1.4 多线程数据库引擎的优缺点 10

2.1.5 用于Windows NT及对称式服务器体系结构的SQL Server 11

2.1.6 Microsoft SQL Server的线程服务 12

2.1.7 Windows NT的网络服务 13

2.1.8 Windows NT和磁盘系统 14

2.2 用于任何客户/服务器数据库的两个API 14

2.2.2 SQL是API吗 15

2.2.1 SQL Server的主语言API 15

2.3 本章小结 16

2.2.3 SQL Server是如何处理查询的 16

第3章 SQL Enterprise Manager介绍… 18

3.1 SQL-EM入门 18

3.1.1 服务器组 18

3.1.2 登记服务器 19

3.2 安全性 20

3.2.1 组 20

3.2.2 登录 21

3.3 设备 21

3.3.1 数据库设备 21

3.3.2 备份设备 23

3.4 服务器活动 23

3.4.1 监控服务器 24

3.4.2 调度任务 24

3.4.4 错误登记 25

3.4.2 警告提示 25

3.5 服务器配置 26

3.5.1 服务器选项 27

3.5.2 安全性选项 27

3.5.3 改变配置 27

3.6 系统工具 28

3.6.1 数据库的备份/恢复 28

3.6.2 数据库的对象/传输 28

3.6.3 查询工具——ISQL/w 29

3.7 数据库管理 29

3.7.1 表 29

3.7.2 索引 30

3.7.3 触发器、视图和存储过程 30

3.7.4 用户定义的数据类型 31

3.8 对象访问授权 31

3.8.1 按用户设置访问权限 31

3.8.2 按对象设置权限 32

3.9 复制 32

3.9.1 安装数据出版者 33

3.9.2 设置数据订阅者 33

3.10 帮助 33

3.11 本章小结 33

4.2.1 结构化查询语言 34

4.2 什么是Transact-SQL 34

4.1 SQL Server 6.5的新特点 34

第2部分 Transact-SQL程序设计 34

第4章 Transact-SQL介绍 34

4.2.3 SQL和Transact-SQL的用途 35

4.2.2 T-SQL和ANSI-SQL 35

4.2.4 T-SQL的语句、批处理和元素 36

4.2.5 服务器的处理步骤 36

4.2.6 如何测试SQL查询 37

4.3 用select检索数据 40

4.3.1 表、行和列 40

4.3.2 pubs数据库中的内容 40

4.3.3 从表中选择数据 40

4.3.4 用where来过滤行 46

4.3.5 利用order by对结果集合排序 51

4.3.6 检索集合数据 53

4.3.7 连接 58

4.3.8 子查询 62

4.3.9 union 65

4.4 使用select和into 66

4.5.1 插入指定的值 67

4.5.2 用select插入多行 67

4.5.3 省略列列表 67

4.5 用insert添加行 67

4.5.4 通过存储过程来插入 68

4.6 使用update来修改表行 68

4.7 使用delete来删除行 69

4.7.1 使用truncate table来清除一个表 69

4.8 本章小结 70

第5章 Transact-SQL的数据类型……… 71

5.1 SQL Server支持的数据类型 71

5.1.1 空值和数据类型 71

5.2.1 char和varchar 72

5.2 字符型和二进制数据类型 72

5.2.2 binary和varbinary 74

5.2.3 时间标记(timestamp) 75

5.2.4 文本和图像数据 77

5.3 datetime数据类型 80

5.3.1 datetime和smalldatetime的差别 80

5.3.2 datetime的插入 81

5.3.3 dateformat选项、语种和日期格式 81

5.3.4 如何查找日期 82

5.4 逻辑数据类型:bit 83

5.5 数值数据类型 84

5.5.1 整数类数据类型 84

5.5.2 浮点数据类型 85

5.5.3 精确数值类型 87

5.5.4 money数据类型 87

5.6 系统表和数据类型 88

5.7 本章小结 89

第6章 创建和修改数据库对象 90

6.1 SQL Server 6.5中的新特点 90

6.2 创建数据库对象 90

6.3 表 92

6.3.1 SQL Server对象命名 96

6.3.2 列的属性 97

6.3.3 identity列的注意事项 98

6.4 视图 99

6.4.1 在SQL-EM中使用视图 100

6.4.2 视图用作列安全措施 101

6.4.3 视图用作行安全措施 102

6.4.4 利用视图来简化SQL 102

6.4.5 视图与数据修改 103

6.4.6 带有check选项的视图 104

6.4.7 用with encryption创建的视图 105

6.4.8 视图信息的获取 105

6.5 重新命名对象 105

6.7 使用SQL-EM增添列 106

6.6 向表中添加列 106

6.8 临时表 107

6.8.1 全局临时表和永久临时表 107

6.9 规则 107

6.9.1 创建规则 108

6.9.2 规则的使用方法 108

6.9.3 规则的限制条件 109

6.9.4 用SQL-EM来创建规则 109

6.10 缺省值 110

6.10.3 声明缺省值 111

6.10.2 缺省值的使用方法 111

6.10.1 举例 111

6.10.4 SQL-EM中的缺省值 112

6.10.5 缺省值的使用限制 112

6.10.6 缺省值何时生效 113

6.10.7 update中的缺省值 113

6.11 查看规则和缺省值 113

6.12 用户定义的数据类型 114

6.12.1 创建用户定义的数据类型 115

6.12.2 用户定义的数据类型注意事项 115

6.12.3 定义和使用用户定义的数据类型 115

6.12.4 在SQL-EM中定义用户定义的数据类型 116

6.13 规则和缺省值的结合次序 116

6.14.3 非簇索引机制 117

6.14.4 簇索引和非簇索引的比较 117

6.14.2 簇索引机制 117

6.14.1 索引类型 117

6.14 索引 117

6.14.5 创建索引 118

6.15 使用SQL-EM管理索引 119

6.14.6 有关索引的注意事项 119

6.15.1 约束 122

6.15.2 主关键字和唯一性约束 122

6.15.3 核查约束 122

6.15.4 引用完整性约束 123

6.15.5 主关键字约束 124

6.15.6 外来关键字约束 125

6.15.7 使用约束注意事项 125

6.15.8 修改约束 126

6.15.9 增加约束 126

6.15.10 删除约束 127

6.15.11 使用SQL-EM来管理约束……… 127

6.15.12 约束的使用原则 128

6.16 数据完整性方法的比较 129

6.16.2 关键字 129

6.16.3 你选用哪一个 129

6.16.1 约束 129

6.17 本章小结 130

第7章 Transact-SQL编程结构 131

7.1 SQL Server 6.5中的新特点 131

7.2 对ANSI SQL的扩展 131

7.3 SQL Server函数 132

7.4 字符串函数 133

7.4.1 基本字符串操作与分析 133

7.4.2 soundex 134

7.4.3 在串内使用charindex来搜索 135

7.4.4 通配符 135

7.4.5 字符串函数例子 137

7.5 数学函数 138

7.6.1 日期部分 139

7.6 日期函数 139

7.6.3 日期转换 141

7.6.2 convert 141

7.7 系统函数 143

7.8 compute和compute...by 145

7.8.1 compute 145

7.8.2 compute by 146

7.9 isnull 148

7.9.1 nullif 149

7.9.2 coalesce 150

7.10 编程结构 150

7.10.1 批处理 151

7.10.2 注释 152

7.10.3 局部变量 153

7.10.4 全局变量 156

7.10.5 print 158

7.10.6 raiserror 159

7.10.7 条件执行语句:if...else 165

7.10.8 if exists 166

7.10.9 语句块:begin...end 166

7.10.10 重复执行语句:while 167

7.10.11 重复执行:goto 168

7.10.12 事件处理:waitfor 169

7.10.13 return 169

7.10.14 set选项 170

7.11 光标 170

7.11.1 一些方法 171

7.11.2 光标例子和某些句法 172

7.11.5 用光标修改数据 175

7.11.3 关闭光标 175

7.11.4 删除光标 175

7.11.6 滚动功能 176

7.11.7 Insensitive(不敏感)光标 177

7.11.8 避免使用光标 177

7.12 本章小结 178

第8章 Transact-SQL程序结构 179

8.1 触发器 179

8.1.1 触发器的优点和用途 179

8.1.2 什么时候不使用触发器 180

8.1.3 触发器的执行 180

8.1.4 创建触发器 181

8.1.5 特殊的触发器语法 188

8.1.6 触发器限制 191

8.1.7 触发器与事务 192

8.1.8 触发器应用程序 194

8.1.9 触发器小结 201

8.2.1 存储过程的优点 202

8.2 存储过程 202

8.2.2 运行存储过程 203

8.2.3 创建存储过程 203

8.2.4 SQL Server与临时存储过程 204

8.2.5 显示和维护 204

8.2.6 过程与参数 207

8.2.7 带参数运行 208

8.2.8 传入传出参数 209

8.2.9 返回过程的状态 210

8.2.10 SQL Server状态码 211

8.2.11 存储过程与事务 212

8.2.12 存储过程中的光标 213

8.2.15 过程中的对象引用 215

8.2.14 过程限制与注意事项 215

8.2.13 利用过程结果集合来插入数据 215

8.2.16 优化存储过程 216

8.2.17 远程存储过程 216

8.2.18 存储过程准则 217

8.2.19 存储过程调试技术 217

8.3 本章小结 217

第9章 事务管理 218

9.1 SQL Server 6.5中的新功能 218

9.2 事务是什么 218

9.3 事务编程 219

9.3.1 事务处理与批处理 220

9.3.2 保存点 221

9.3.3 嵌套的事务处理 222

9.4 事务与锁定 223

9.4.1 事务与触发器 224

9.4.2 @@trancount与隐式事务 224

9.5 事务与存储过程 225

9.4.3 触发器中的rollback transaction 225

9.6 长时间运行的事务 230

9.7 绑定的连接和多连接事务 230

9.7.1 如何绑定几个连接 231

9.7.2 与绑定连接有关的编程问题 233

9.8 本章小结 234

第3部分 性能与性能微调 235

第10章 如何定义性能期望值 235

10.1 希望得到什么 235

10.1.1 应该集中注意哪些指标 235

10.2 性能的定义 236

10.2.1 折衷考虑 237

10.2.2 常见的折衷方案 237

10.2.3 期望的性能指标 238

10.2.4 瓶颈 239

10.3 影响性能的几个可变因素 239

10.3.2 应用程序 240

10.3.1 物理结构 240

10.3.4 并发性 241

10.3.3 服务器 241

10.4 调整途径 242

10.5 本章小结 242

第11章 理解SQL Server的存储结构… 243

11.1 SQL Server的存储结构 243

11.2 分配页 245

11.3 数据页 249

11.3.1 数据行 250

11.3.2 估计行和表的大小 252

11.3.3 行偏移表 254

11.4 文本和图像页 255

11.5 索引和B树结构 256

11.5.1 簇索引 257

11.5.2 非簇索引 260

11.5.3 索引与性能 264

11.5.4 SQL Server索引维护 264

11.5.5 填充因子 268

11.6 更新与性能 270

11.6.1 推迟的更新 270

11.6.2 直接更新 271

11.7 本章小结 276

第12章 设计索引来优化性能 277

12.1 为什么使用索引 277

12.2 索引使用规则 277

12.3 索引与性能 278

12.5 索引的实用性评价 279

12.4 索引的选择 279

12.5.1 分布页 280

12.5.2 分布页中的内容 280

12.5.3 索引密度 283

12.5.4 查看分布页值 284

12.6 索引设计指南 285

12.6.1 簇索引指导 285

12.6.2 非簇索引指导 287

12.6.3 索引覆盖 289

12.6.4 复合索引与多重索引 291

12.6.5 多重查询的索引 292

12.7 本章小结 294

第13章 理解查询优化器 295

13.1 优化目标 295

13.2 查询优化步骤 295

13.3 查询分析 296

13.3.1 确定搜索参数(SARG) 296

13.3.2 or子句 298

13.3.3 join子句 300

13.3.4 展开查询 301

13.4 索引选择 302

13.4.1 评估SARG或or子句的索引 302

13.4.2 评估join子句的索引 303

13.4.3 索引分类 303

13.4.4 索引覆盖 304

13.5 连接顺序处理 305

13.5.1 确定连接顺序 305

13.5.2 处理大的多表查询 306

13.5.3 估计连接顺序开销 307

15.4 dbcc traceon(302)与dbcc traceon 310

13.5.4 重定策略 312

13.5.5 交叉连接和外层连接 313

13.6 优化group by,distinct和order by子句 314

13.6.1 group by 314

13.6.2 distinct 315

13.6.3 order by 315

13.7 方案选择 316

13.8 潜在的优化器问题 317

13.8.1 确保统计数据是最新的 317

13.8.2 检查SARG是否真正是SARG 317

13.8.3 检查索引是否真正覆盖了查询 317

13.8.4 确定存储过程是否是在不同参数的基础上被优化的 317

13.8.5 检查是否发生了重定 317

13.9 本章小结 318

第14章 存储过程的优化 319

14.1 存储过程及其性能优点 319

14.2 存储过程是如何优化的 320

14.3 存储过程的缺点 321

14.4 重编译存储过程 321

14.4.2 使用sp-recompile 322

14.4.1 自动重新编译 322

14.4.3 什么时候使用with recompile 323

14.4.4 什么时候使用sp-recompile 323

14.4.5 什么时候重编译不执行 323

14.4.6 with recompile的替代方法 323

14.5 本章小结 325

第15章 分析查询方案 326

15.1 使用和理解showplan 326

15.1.1 STEP〈stepnum〉 328

15.1.2 The type of query is〈查询类型〉 328

15.1.3 The type of query is SELECT(into aworktable) 328

15.1.5 矢量集合/标量集合 329

ROLLUP] 329

15.1.4 GROUP BY[WITH CUBE | 329

15.1.6 FROM TABLE 330

15.1.12 Worktable Created for ORDER BY|DISTINCT 331

15.1.8 Table Scan(表扫描) 331

15.1.9 Using Clustered Index(使用簇索引) 331

15.1.7 Nested iteration(嵌套重复) 331

15.1.11 Using Dynamic Index(使用动态索引) 331

15.1.10 Index:index-name 331

15.1.13 Worktable Created for REFORMAT-TING 332

15.1.14 Worktable created for SELECT IN-TO 333

15.1.15 The update mode is deferred|direct 333

15.1.16 [NOT]EXISTS:nested iteration 333

15.1.17 OR|AND EXISTS:nested iteration 334

15.1.18 SUBQUERY:nested iteration 334

15.1.19 WITH CHECK OPTION 335

15.1.20 CONSTRAINT:nested iteration 335

15.1.21 LEFT|FULL OUTER JOIN:nestediteration 335

15.2 用dbcc追踪标志分析查询方案 336

15.2.1 dbcc traceon(-1) 337

15.3 dbcc traceon(330) 338

15.2.2 3604、3605跟踪标志 338

15.4.1 理解dbce traceon(302)的输出 340

15.4.2 Index Statistic 344

15.4.3 什么时候分布项(步)不能使用 346

15.4.4 确定最终的开销估计及索引选择率 348

15.4.5 分析连接子句 349

15.4.6 理解dbcc traceon(310)的输出 352

15.5 使用statistics io及statistics time 362

15.5.1 statistics io 362

15.5.2 statistics time 365

15.6 本章小结 368

第16章 锁定与性能 369

16.1 锁定的需求 369

16.2 SQL Server锁的类型 369

16.2.1 共享锁 370

16.2.2 修改锁 371

16.2.3 独占锁 371

16.2.4 Transact-SQL语句及相关的锁 371

16.3 SQL Server锁定的粒度 372

16.3.1 表级锁定 372

16.3.2 大数据集的锁定逐步升级 373

16.3.3 Insert行级锁定 374

16.3.4 模拟行级锁定 375

16.3.5 利用光标来锁定 377

16.4 索引锁定 378

16.5 在SQL Server 6.0及以后版本中使用事务隔离级别 378

16.6 检查当前的锁定活动 380

16.6.1 使用sp-lock存储过程 380

16.6.3 使用Performance Manager来观察当前锁定的状况 381

16.7 配置SQL Server锁定 381

16.6.2 利用SQL Enterprise Manager来观察锁定活动 381

16.8 将锁定争用减至最小 383

16.8.1 减少每页的行数 383

16.9 死锁 384

16.9.1 如何降低死锁的可能性 385

16.9.2 检查死锁 387

16.10 本章小结 388

第17章 管理SQL Server优化器……… 389

17.1 超越优化器 389

17.2 强制索引选择 390

17.2.1 实例学习 392

17.2.2 本例的启示 393

17.3 强制连接顺序 393

17.3.1 临时表 395

17.4 查询级锁的选择 395

17.5 本章小结 397

第18章 数据库的设计和运行性能……… 398

18.1 数据库的物理设计和逻辑设计 398

18.2 数据库设计问题 398

18.3 什么是逻辑设计 399

18.3.1 规范条件 399

18.3.2 规范的形式 399

18.4 非规范化数据库 401

18.4.1 非规范化的优点 401

18.4.2 准则 401

18.3.5 规范化和数据设计图 401

18.3.4 规范化的缺点 401

18.3.3 规范化的优点 401

18.4.3 基本非规范化技巧 402

18.4.4 冗余数据 402

18.4.5 改变列定义 404

18.5 重定义表 405

18.5.1 数据划分 405

18.6 数据库设备与性能的关系 407

18.7 段 408

18.7.1 为什么采用段 410

18.7.2 段定义 411

18.7.3 放置对象到段上 412

18.7.4 如何停止使用段上的特定设备 413

18.8 RAID技术介绍 413

18.8.1 RAID第0级 414

18.8.2 RAID第1级 414

18.8.4 RAID第3级 415

18.8.3 RAID第2级 415

18.8.5 RAID第4级 416

18.8.6 RAID第5级 417

18.8.7 SQL Server和存储设备的性能 417

18.8.8 使用哪种RAID设备 418

18.8.9 SQL Server通常使用的RAID级 419

18.8.10 SQL Server和RAID——其他注意事项 419

18.8.11 基于硬件的RAID子系统 419

18.9 Windows NT条状集合 420

18.10 RAID与段的对比 420

18.11 本章小结 421

第19章 设计高性能的应用程序 422

19.1 平衡性能的考虑 422

19.1.1 服务器 422

19.2.1 减小查询的规模 423

19.1.3 服务器和客户能力的提示 423

19.2 网络是瓶颈 423

19.1.2 客户 423

19.2.2 减小结果集合 424

19.3 行处理 425

19.4 数据验证的方法 425

19.4.1 数据验证和性能 425

19.5 复杂事务处理 428

19.6 多服务器事务处理 430

19.7 一些建议 430

19.8 本章小结 430

第20章 高级SQL技术 431

20.1 聚合查询的解决 431

20.1.1 把having子句与group by组合一起 431

20.2.2 SQL Server如何处理包含工作表的查询 433

20.2 分组和工作表 433

20.2.1 工作表的作用 433

20.3.1 使用or的连接 434

20.3 连接处理中的特殊问题 434

20.4 超越优化器 436

20.4.1 优化时索引不存在 437

20.4.2 统计过期 437

20.4.3 设备的性能与所预料的不同 437

20.5 拆散大的查询 439

20.5.1 定义大的查询 440

20.5.2 如何拆散查询 440

20.5.3 建议 443

20.6 本章小结 443

第21章 其他与性能有关的主题 444

21.1 BCP与性能 444

21.1.1 最小数据装入时间 444

21.1.3 BCP与数据完整性 446

21.1.2 慢速BCP与登录 446

21.2 数据库维护与性能 447

21.3 tempdb(临时数据库)与性能 449

21.3.1 增加SQL Server的内存 449

21.3.2 将tempdb置于RAM中 449

21.3.3 将tempdb放到高速设备上 450

21.3.4 散布磁盘资源 450

21.3.5 其他tempdb性能提示 453

21.4 光标与性能 453

21.5 Text和Image列与性能 455

21.6 本章小结 456

第22章 通用性能优化技术及解决问题的 457

方法 457

22.1 过期或不可得到的统计值 457

22.2.2 负逻辑 458

22.2.1 没有SARG 458

22.2 查找参数问题 458

22.2.4 where子句中的未知常量 459

22.2.3 在where子句中列的操作 459

22.2.5 数据类型不匹配 461

22.2.6 where子句中的or逻辑 461

22.3 其他与查询有关的问题 462

22.3.1 distinct关键字 462

22.3.2 count()函数 462

22.3.3 集合语句 463

22.3.4 order by和group by 464

22.3.5 Join子句 465

22.3.6 提供所有可能的join子句 465

22.4 SQL Server配置 466

22.5.2 过多地引用索引 467

22.5.3 索引选择 467

22.5.1 索引 467

22.5 物理数据库设计 467

22.4.1 内存 467

22.5.4 簇索引 468

22.5.5 避免热点 468

22.5.6 DSS与OLTP 468

22.5.7 历史的与活动的数据 469

22.6 锁定 469

22.7 维护活动 469

22.8 本章小结 469

第4部分 系统管理 470

第23章 系统管理员的作用和职责……… 470

23.1 SQL Server的组成部分 470

23.2 SQL Server版本 471

23.3.2 系统管理员的职责 473

23.3 系统和数据库管理 473

23.3.1 系统管理员(sa)登录 473

23.4 系统表 474

23.4.1 数据库目录系统表 474

23.4.2 服务器目录系统表 475

23.5 系统存储过程 476

23.5.1 特性 476

23.5.2 有用的系统过程 478

23.6 本章小结 478

第24章 SQL Server的安装和连接…… 479

24.1 SQL Server硬件和软件需求 479

24.1.1 服务器的硬件特性 479

24.1.2 SQL Server软件需求 480

24.2.1 从4.2x升级至6.5时应注意的特殊事项 481

24.2.2 从6.0升级至6.5时应注意的特殊事项 482

24.2.3 通用升级信息 482

24.2.4 升级SQL Server和潜在的ANSI关键字冲突 482

24.2.5 怎样解决ANSI关键字冲突 484

24.2.6 利用现有4.2x和6.0的管理工具 485

24.3 为Windows NT和SQL Server选择一个文件系统 485

24.4 一步步地完成服务器安装 485

24.4.1 SQL Server安装路径 486

24.4.2 master设备的位置和大小 486

24.4.3 代码页和排序次序 486

24.4.4 SQL Server网络支持 487

24.4.5 自动启动SQL Server和SQL Execu-tive 488

24.4.8 可以登录了 489

24.4.9 如果登录不成功 489

24.4.6 服务器连接许可 489

24.4.7 联机文档 489

24.4.10 用shutdown关闭 490

24.5 客户端安装 490

24.5.1 DB-Library的组成部分 491

24.5.2 Windows 492

24.6 查错指南 492

24.6.1 SQL Server工作吗 492

24.6.2 你能从ISQL/w上访问SQL Server 492

吗 492

24.6.3 你能完全通过网络与物理服务器对话吗 493

24.6.4 昨天还是好的,怎么今天 493

24.6.5 你能在SQL Server上登录吗 493

24.6.6 是否只在用户数增加时出问题 493

24.7 改变缺省值——安装中最重要的10项设置 493

24.7.4 设置配置值 494

24.7.3 增加tempdb的大小 494

24.7.1 sa访问安全性 494

24.7.2 关闭master设备缺省状态 494

24.7.5 建立模型数据库对象、用户和数据类型 495

24.7.6 安装pubs数据库 495

24.8 本章小结 495

第25章 定义物理设备和镜像设备……… 496

25.1 用disk init命令初始化磁盘 496

25.1.1 disk init的参数 497

25.1.2 逻辑名 497

25.1.3 物理名 498

25.1.4 虚拟设备号 498

25.1.5 容量 498

25.1.6 虚拟地址 499

25.1.7 disk init举例 499

25.1.9 使用SQL Server Enterprise Manager 500

25.1.8 disk init命令的错误信息 500

25.1.10 disk init的结果 502

25.1.11 通过sp-dropdevice删除设备 504

25.2 使用缺省磁盘 505

25.3 扩展磁盘设备 507

25.4 磁盘镜像 507

25.4.1 disk mirror事件序列 509

25.4.2 磁盘镜像信息 509

25.4.3 取消磁盘镜像 509

25.4.4 磁盘重新镜像 510

25.5 设备SQL 512

25.6 通过SQL Enterprise Manager控制设备镜像 512

25.7 软件镜像、硬件镜像以及RAID 512

25.7.1 软件镜像 513

25.7.2 硬件镜像 513

25.8 本章小结 514

25.7.3 硬件RAID 514

第26章 定义、修改和维护数据库及日志 515

26.1 什么是数据库 515

26.1.1 数据库和空间管理 515

26.1.2 数据库和安全性 516

26.1.3 数据库和备份 516

26.2 系统数据库 516

26.3 创建数据库 517

26.3.1 create database句法 517

26.3.2 创建数据库实例 518

26.3.3 创建数据库时产生了哪些动作 519

26.3.4 用SQL Enterprise Manager来定义数据库 520

26.3.5 改变数据库的容量 521

26.3.6 数据库创建授权和数据库的拥有权 524

26.4.1 alter database的句法 525

26.4 扩大数据库的容量 525

26.4.2 增加日志空间 526

26.4.3 为日志分配空间 526

26.5 减小数据库的容量 527

26.6 探寻数据库 527

26.6.1 数据库系统表 529

26.6.2 使用SQL查询系统表 531

26.6.3 查看数据库空间使用状况 531

26.7 数据库选项 532

26.7.1 缺省的数据库选项 534

26.7.2 设置数据库选项 534

26.7.3 用SQL Enterprise Manager进行数据库选项设置 534

26.7.4 检查数据库的状态 535

26.8 model数据库 536

26.10 段和对象的设置 537

26.9 删除数据库 537

26.10.1 用段来提高性能 538

26.10.2 段用于控制 538

26.10.3 段的定义 538

26.10.4 预定义的段 540

26.10.5 在段上放置对象 540

26.10.6 从段中删除设备 543

26.10.7 获取段的信息 544

26.10.8 段系统表 544

26.10.9 查询syssegments 545

26.11 本章小结 545

第27章 安全性和用户管理 546

27.1 SQL Server安全等级 546

27.1.1 操作系统的安全问题 546

27.1.4 对象级安全性:许可 547

27.1.3 SQL Server数据库安全性:用户 547

27.1.2 SQL Server安全性:登录 547

27.2 SQL Server标准登录 548

27.2.1 特殊登录 550

27.2.2 通用登录 551

27.2.3 登录如何工作 551

27.2.4 修改登录信息 552

27.3 口令 552

27.4 SQL Server集成登录 552

27.4.1 配置集成登录安全性 553

27.4.2 配置SQL Server 553

27.4.3 通过NT用户管理器创建SQL用户 554

和工作组 554

27.4.4 将NT用户和工作组映射为SQL 555

Server登录 555

27.4.5 测试 556

27.4.6 SQL Server登录 557

27.5 数据库访问 557

27.5.1 添加用户 557

27.5.2 特殊用户 558

27.5.3 增加别名(可选项) 558

27.5.4 数据库访问如何进行 561

27.5.5 工作组 562

27.5.6 工作组如何工作 563

27.6 各种登录方法 563

27.6.1 SQL Server登录等于操作系统/应用程序登录 563

27.6.2 SQL Server登录独立于操作系统/应用程序登录 564

27.6.3 单个SQL Server登录 564

27.7 设置口令的方法 565

27.8 许可 566

27.7.3 口令独立于登录名 566

27.7.1 口令等于登录名 566

27.7.2 通用应用程序登录和口令 566

27.8.1 用户 567

27.8.2 对象的许可 567

27.8.3 命令许可 569

27.8.4 授予许可的方法 570

27.8.5 对象的相关性 572

27.9 本章小结 574

第28章 数据库日志与恢复 575

28.1 事务是什么 575

28.2 什么是事务日志 576

28.2.1 先写记录 576

28.2.2 提交 577

28.2.3 检查点(checkpoints) 578

28.2.4 恢复 579

28.3 本章小结 581

28.2.5 当事务日志装满时 581

第29章 DBCC 582

29.1 使用前的警告 582

29.2 处理数据碎块 583

29.2.1 dbcc showcontig 584

29.2.2 解决碎块问题 586

29.3 诊断和解决数据库错误 587

29.3.1 dbcc checkdb 587

29.3.2 dbcc checktable 590

29.3.3 dbcc checkcatalog 592

29.3.4 dbcc newalloc 592

29.3.5 dbcc textall和textalloc 595

29.3.6 dbcc fix-al 596

29.3.7 dbcc dbrepair 596

29.4 跟踪标志和其他有用的命令 597

29.4.4 一些有用的跟踪标志 598

29.4.3 tracestatus 598

29.4.1 traceon 598

29.4.2 traceoff 598

29.4.5 dbcc page 599

29.4.6 dbcc pglinkage 602

29.4.7 dbcc shrinkdb 603

29.4.8 dbcc opentran 604

29.4.9 dbcc updateusage 605

29.5 dbcc和性能 605

29.5.1 dbcc memusage 605

29.5.2 dbcc pintable 605

29.5.3 dbcc sqlperf 606

29.6 本章小结 611

30.1 为什么要备份 612

30.2 作用及职责 612

第30章 SQL Server数据库的备份及还原 612

30.3 备份的类型 613

30.4 备份设备 613

30.4.1 磁带设备 613

30.4.2 磁盘设备 614

30.4.3 增加备份设备 614

30.5 SQL Server 6.5的备份功能 615

30.5.1 用SQL Enterprise Manager生成备份设备 616

30.6 备份及恢复命令 616

30.6.1 备份数据库 617

30.6.2 使用SQL Enterprise Manager备份数据库 618

30.6.3 备份事务日志 619

30.6.4 用SQL Enterprise Manager备份事务日志 620

30.6.5 备份单个表 621

30.6.6 还原数据库 622

30.6.8 在灾难后还原 623

30.6.7 使用SQL Enterprise Manager还原数据库 623

30.6.9 还原事务日志 625

30.6.10 还原单个表 626

30.6.11 还原至一个指定的时间点 627

30.6.12 备份和还原历史 628

30.7 备份时的其他考虑因素 628

30.7.1 备份的频率 628

30.7.2 分区备份 629

30.7.3 锁定 629

30.7.4 获取统计信息 629

30.8 记录事务日志 630

30.8.1 监视可用的日志空间 630

30.9 制定备份及恢复计划 631

30.9.1 系统数据库 631

30.9.2 用户数据库 633

30.9.3 超大规模数据库的考虑因素 634

30.10 本章小结 635

第31章 配置并调整SQL Server……… 636

31.1 配置变量 636

31.2 用SQL Enterprise Manager设置配置选项 639

31.2.1 可配置的值 639

31.2.2 使用较多内存的变量 659

31.3 本章小结 659

第32章 优化SQL Server配置选项…… 660

32.1 内存使用 660

32.1.1 确定SQL Server 6.5的最优内存配置 662

32.1.2 使用tempdb in RAM选项 663

32.2 使用dbcc memusage来确认内存配置 664

32.3 配置锁定升级值 668

32.4 优化SQL Server并行读操作 669

32.5 本章小结 675

第33章 测量SQL Server的系统性能… 676

33.1 为什么要测量性能 676

33.2 Performance Monitor是什么 676

33.3 SQL Server性能计数器的监视内容 678

33.3.1 监视处理器 678

33.3.2 监视内存 678

33.3.3 监视磁盘 678

33.3.4 监视网络 679

33.3.5 监视SQL Server对象 679

33.4 使用dbcc sqlperf 679

33.5 本章小结 680

第34章 远程服务器管理 681

34.1 定义 682

34.2.1 第1步:命名服务器 683

34.2 远程访问指南 683

34.2.2 第2步:配置用于远程访问的每个服务器 684

34.2.3 第3步:映射远程登录及用户 684

34.2.4 第4步:设置用于口令检查的远程选项 684

34.3 用sp-addserver添加服务器 684

34.4 用sp-dropserver删除服务器 685

34.5 用sp-addremotelogin添加远程登录 685

34.5.1 使用远程ID作为本地ID 685

34.5.2 为所有远程登录使用单一本地登录 685

34.5.3 为所有远程用户使用一个新的本地名 686

34.6 用sp-dropremotelogin删除登录 686

34.7 远程选项 686

34.8 在远程服务器上获取信息 687

34.9 使用扩展存储过程和Open Data Services 687

34.10 本章小结 689

35.1 SQL Server Enterprise Manager(SQL-EM) 690

第35章 Microsoft SQL Server分布式管理框架 690

35.2 SQL Executive、意外处理和任务安排 691

35.2.1 SQL Executive 691

35.2.2 任务处理术语 693

35.2.3 任务执行特性和安排 693

35.2.4 例外处理 694

35.2.5 任务执行和跟踪 695

35.2.6 msdb数据库 696

35.3 SQL分布式管理对象(SQL-DMO) 697

35.4 如何配置任务、操作员和警报 698

35.4.1 定义任务 698

35.4.2 监视任务的执行 701

35.4.3 配置操作员 701

35.4.4 配置警报 702

35.5 本章小结 704

36.1 数据分布技术介绍 705

第36章 Microsoft SQL Server 6.5 Repli-cation介绍 705

36.2 SQL Server复制 707

36.2.1 SQL Server复制的名词术语 708

36.2.2 SQL Server复制模型 710

36.2.3 SQL Server复制处理 712

36.3 SQL Server复制的配置预备 714

36.4 配置简单的一对多复制模型 714

36.4.1 设置SQL Server的配置选项 714

36.4.2 配置服务器出版和分布服务器 715

36.4.3 配置订阅服务器 716

36.4.4 创建出版物和文章 717

36.4.5 定义出版物和文章的订阅 720

36.4.6 下一步是什么 722

36.5 本章小结 722

37.1 SQL Server环境的开发途径 723

37.1.1 理解环境 723

第37章 定义系统管理和命名标准……… 723

37.1.2 开发环境 724

37.1.3 测试环境 728

37.1.4 生产环境 729

37.2 命名标准 729

37.2.1 使用指示器 729

37.2.2 选择总体方法 731

37.3 SQL Server中的命名 733

37.3.1 命名服务器 733

37.3.2 命名数据库 734

37.3.3 命名表、视图和列 734

37.3.4 命名索引 734

37.3.5 命名规则和缺省值 734

37.3.9 命名约束条件 735

37.3.8 命名触发器 735

37.3.7 命名存储过程 735

37.3.6 命名用户定义的数据类型 735

37.3.10 数据库设备命名标准 736

37.3.11 转储设备命名标准 737

37.4 操作系统命名 738

37.4.1 目录命名标准 739

37.4.2 文件命名标准 741

37.4.3 源代码控制 742

37.5 缩写标准 743

37.6 本章小结 744

第38章 管理超大规模SQL Server数据库 745

38.1 什么是VLDB 745

38.2 VLDB维护问题 745

38.3 维护数据库转储和装入 745

38.3.1 开发VLDB备份/恢复过程 747

38.4.1 开发一致性检查计划 748

38.4 检查数据库的一致性 748

38.5.1 更新统计资料 750

38.5.2 update statistics的安排 750

38.5 数据维护 750

38.5.3 清除/归档过程 751

38.6 数据分区选项 756

38.6.1 垂直数据分区 756

38.6.2 水平数据分区 758

38.7 本章小结 759

第5部分 开放式客户编程介绍 760

第39章 MS SQL Server客户/服务器编程介绍 760

39.1 SQL Server如何适应客户/服务器模型 760

39.2 SQL Server的编程方法 762

39.2.1 Transact-SQL 762

39.2.2 DB-Library和Net-Library 762

39.3 发送一个查询后所发生的事情 763

39.2.3 Open Data Services(ODS) 763

39.4 本章小结 765

第40章 SQL Server的客户应用程序接口 766

40.1 DB-Library编程介绍 766

40.1.1 Visual Basic和DB-Library 767

40.1.2 使用DB-Library API的优缺点 767

40.2 ODBC编程介绍 768

40.2.1 ODBC核心API的一致性要求 768

40.2.2 ODBC第1级的一致性要求 769

40.2.3 ODBC第2级API的一致性要求 769

40.2.4 ODBC SQL一致性级 769

40.2.5 ODBC对最终用户带来的益处 770

40.2.6 ODBC对应用程序开发人员带来的益处 770

40.2.7 ODBC对数据库开发人员带来的益处 770

40.4.1 数据访问对象(DAO) 771

40.4 DAO,RDO和MFC数据库类 771

40.3 透视ODBC的性能 771

40.4.2 RDO和ODBC MFC类 772

40.5 DB-Library与ODBC及客观存在的高级API之间的对比 773

40.6 编程工具 774

40.6.1 可视编程工具 774

40.6.2 语言编译程序工具 775

40.6.3 处理数据的桌面应用程序和报表工具 775

40.7 本章小结 776

第41章 规划SQL Server应用程序…… 777

41.1 安装客户接口 777

41.2 配置DB-Library和ODBC 778

41.2.1 使用Client Configuration Utility 778

41.2.2 自动地配置客户 779

41.2.3 配置ODBC的客户 780

41.3 连网考虑 783

41.3.1 客户端的处理与服务器端的处理 784

41.4 本章小结 786

第42章 SQL Server的DB-Library编程 787

42.1 入门准备 787

42.1.1 DB-Library的文档和资源 787

42.1.2 VBSQL与在C中进行DB-Library编程的对比 787

42.1.3 DB-Library程序的可移植性 787

42.2 样例应用程序 788

42.2.1 初始化VBSQL和出错处理程序 789

42.2.2 打开SQL Server连接 790

42.2.3 发送查询 791

42.2.4 检索结果 792

42.2.5 计时、基准测试及限制 795

42.3 本章小结 796

43.1.2 Visual Basic与C的比较 797

43.1.1 ODBC文档及资源 797

43.1 入门准备 797

第43章 SQL server的ODBC编程…… 797

43.1.3 ODBC程序的可移植性 798

43.2 样例应用程序 798

43.2.1 ODBC查询的例子 798

43.2.2 ODBC绑定列实例程序 802

43.2.3 RDO/DAO实例代码 804

43.2.4 计时和性能测试 805

43.3 本章小结 806

第6部分 SQL Server和World Wide Web 807

第44章 用SQL Server构造Web页…… 807

44.1 使用Internet Information Connector 807

44.1.1 创建输入窗体 809

44.1.2 创建Internet Database Connector接口文件 812

44.1.3 创建Internet Database ConnectorHTML模板 815

44.2 使用SQL Server Web Assistant 822

44.3 本章小结 827

第7部分 附录 828

附录A DB-Library快速参考 828

A.1 核心函数 828

A.2 光标函数 831

A.3 存储过程函数 832

A.4 文本及图像函数 833

A.5 浏览函数 833

A.6 批量复制函数 834

A.7 两阶段提交函数(仅适用于C/C++开发) 835

附录B 与本书附带CD-ROM有关的法律 836

协议 836

附录C 本书所配CD-ROM上的内容…… 837

C.1 在Windows 95/NT 4.0上的安装步骤 837

C.2 在Windows NT 3.51上的安装步骤 837