目录
第1部分 概述
第1章 Microsoft SQL Server 的演变过程:从1989年到1996年
1.1 竞争的背景产生了MicrosoftSQLServer
1.2 早期的NDK
1.3 MocrosoftSQLServer的正式发布
1.4 开发工作的加强
1.5 OS/2和“友好的火力’
1.6 4.2版本
1.7 OS/22.0的发布延迟了
1.7 14.2版本发布了
1.8 WindowsNT上的SQLServer
1.9 成功带来的巨大变化
1.10 合作开发的结束
1.11 SQL95的费用
1.12 下一个版本
第2章 游历MicrosoftSQLServer
2.1 引言
2.2 SQLServer引擎
2.2.1 Transac卜SQL
2.3 DBMS-强制性的数据完整性
2.3.1 说明性参照完整性
2.3.2 数据类型
2.3.3 CHECK约束和规则
2.3.4 默认值
2.3.5 触发器
2.4 事务处理
2.4.1 原子性
2.4.2 一致性
2.4.3 隔离性
2.4.4 耐久性
2.5 对称的服务器结构
2.5.1 传统的进程/线索模型
2.5.2 MicrosoftSQLServer的进程/线索模型
2.5.3 多用户性能
2.6 安全性
2.6.1 监测与管理安全性
2.7 高度的有效性
2.8 分布式的数据处理
2.9 数据复制
2.10 系统管理
2.10.1 SQLEnterpriseManager
2.10.2 分布式的管理对象
2.10.3 Automation和VisualBasic脚本
2.10.4 SQLExecutive
2.11 SQLServer工具软件和扩展
2.11.1 SQLServerWebAssistant和访问Internet
2.11.2 SQL Tranc e
2.11.3 SQLServiceManager
2.11.4 与Windows NTPerformanceMonitor集成
2.11.5 SQLSecurityManager
2.11.6 SQLClientConfigrationUtility
2.11.7 SQLServer安装程序
2.11.8 ISQL/w和ISQL
2.11.9 大批量拷贝工具
2.11.10 与SNMP结合
2.11.11 SQLServer的联机阅读文档
2.12 开发界面
2.12.1 DB-Library
2.12.2 ODBC
2.12.3 ESQLforC
2.12.4 OpenDataServices
小结
第2部分 体系结构概述
第3章 SQLServer的结构
3.1 概述
3.2 SQLServer引擎
3.2.1 网库
3.2.2 OpenDataServices
3.2.3 命令分析器
3.2.4 远程存储过程调用的处理器
3.2.5 序化器和优化器
3.2.6 执行器
3.2.7 搜索管理器
3.2.8 数据库和页管理器
3.2.9 事务管理器
3.2.10 加锁管理器
3.2.11 行操作管理器、索引管理器、文本管理器
3.2.12 缓冲区管理器和日志写入器
3.3 大内存问题
3.3.1 快速访问内存中的页
3.3.2 快速访问空闲页(Lazywri ter)
3.4 事务日志和恢复
3.4.1 加锁和恢复
3.4.2 时戳和恢复
3.5 SQLServer的内核以及SQLServer与WindowsNT的相互作用
3.5.1 线索和对称多处理
3.5.2 工作人员线索池
3.5.3 可伸缩性、性能和测试准则
小结
第3部分 应用SQLServer
第4章 规划和安装SQLServer
4.1 安装虽易,但考虑仍需周全
4.2 SQLServer与SQL工作站
4.3 选择硬件
4.3.1 使用与Windows硬件兼容的硬件
4.3.2 选择好的处理器
4.3.3 性能等于处理器周期、内存和I/O吞吐率的综合效果
4.3.4 要舍得在测试程序上花钱
4.4 硬件指导原则
4.4.1 处理器
4.4.2 内存
4.4.3 磁盘驱动器、控制器和磁盘组
4.4.4 RAID方法
4.4.5 关于驱动器和控制器的进一步说明
4.4.6 使用不间断电源
4.4.7 检测磁盘子系统
4.4.8 撤退型服务器功能
4.4.9 其它硬件方面的考虑
4.5 操作系统
4.6 文件系统
4.7 安全性和用户环境
4.8 选择许可证
4.8.1 Internet许可证
4.8.2 许可证限制
4.9 网络协议选择
4.10 字符集和排序顺序问题
4.10.1 字符集
4.10.2 排序顺序
4.11 运行安装程序
4.12 安装后的基本配置
4.13 无值守安装和远程安装
4.13.1 远程安装
4.13.2 无值守安装
4.13.3 在最初安装后使用安装程序
小 结
第5章 数据库和设备
5.1 什么是数据库?
5.2 数据库设备
5.2.1 建立数据库设备
5.2.2 设备号
5.2.3 扩充设备
5.2.4 默认设备
5.2.5 挂接和脱开设备
5.2.6 与设备的建立和安装有关的错误
5.2.7 镜象功能
5.3 建立数据库
5.3.1 分离事务日志
5.4 数据库的最大化和分片
5.5 扩充和收缩数据库
5.6 数据库内幕
5.7 数据库选项
5.8 改变数据库选项
5.9 有关数据库其它方面的考虑
5.9.1 FORLOAD选项
5.9.2 数据库与模式有差别
5.9.3 可移动介质
5.9.4 专门的系统数据库
小结
第6章 表
6.1 引言
6.2 建表
6.2.1 命名表和列
6.2.2 关键字和保留字
6.2.3 命名约定
6.2.4 数据类型
6.3 内部存储细节
6.3.1 数据页
6.3.2 查看数据页
6.3.3 数据行
6.3.4 偏移表和调节表
6.3.5 定长行和变长行的存储方法
6.4 索引
6.4.1 群聚索引
6.4.2 非群聚索引
6.4.3 建立索引
6.5 用户定义的数据类型
6.6 Identity属性
6.7 约束
6.7.1 主键和唯一性约束
6.7.2 FOREIGNKEY(外键)约束
6.7.3 约束检查方法
6.7.4 关于删除表的限制
6.7.5 自引用表
6.7.6 参照动作
6.7.7 CHECK约束
6.7.8 “默认”约束
6.7.9 关于约束的进一步说明
6.8 临时表
6.8.1 私人临时表(#)
6.8.2 共用临时表
6.8.3 直接使用tempdb
6.8.4 对临时表的约束
小结
第7章 查询数据
7.1 引言
7.2 SELECT语句
7.3 联结
7.3.1 外联结
7.3.2 废弃外联结运算符
7.4 处理NULL
7.4.1 现时世界中的NULL
7.4.2 ISNULL和=NULL
7.5 子查询
7.5.1 相关子查询
7.6 视图和导出表
7.7 其它搜索表达式
7.7.1 LIKE
7.7.2 BETWEEN
7.7.3 集合函数
7.7.4 利用集合函数的计算结果从不同角度查看数据
7.7.5 CUBE
7.7.6 ROLUP
7.7.7 UNION
小结
第8章 修改数据
8.1 引言
8.2 基本的修改操作
8.2.1 INSERT
8.2.2 UPDATE
8.2.3 DELETE
8.2.4 通过视图修改数据
8.2.5 WITHCHECKOPTION选项
8.3 内部细节和性能方面的考虑
8.3.1 行的定位
8.3.2 更新策略
8.3.3 示例
8.3.4 加锁问题
小结
第9章 利用Transact- SQL编程
9.1 引言
9.2 作为编程语言的Transact-SQL
9.3 Transact-SQL编程结构-基本知识
9.3.1 变量
9.3.2 流控制工具
9.3.3 CASE
9.3.4 CASE的变形
9.3.5 注解
9.3.6 PRINT和RAISERROR
9.3.7 运算符
9.3.8 标量函数
小结
第10章 批处理、事务、存储过程和触发器
10.1 引言
10.2 批处理文件
10.3 事务
10.3.1 明确的事务和隐含的事务
10.3.2 在事务中查错
10.3.3 事务隔离等级
10.3.4 事务的附加特性
10.4 存储过程
10.4.1 嵌套的存储过程
10.4.2 存储过程中的递归技术
10.4.3 嵌套的事务块
10.4.4 保存点
10.4.5 存储过程的参数
10.5 批处理文件的处理和存储过程的存储
10.5.1 存储过程的存储
10.5.2 将存储过程加密
10.5.3 临时的存储过程
10.5.4 系统存储过程和专用的“sp-”前缀
10.5.5 自动启动存储过程
10.5.6 系统存储过程
10.5.7 类目存储过程
10.5.8 SQLExective存储过程
10.5.9 复制存储过程
10.5.10 扩展存储过程
10.6 触发器
10.6.1 重新执行一个触发器
10.7 调试存储过程和触发器
10.7.1 构造并执行一个字符串
10.8 操作文本和图象数据
10.8.1 WR ITETEXT
10.8.2 READTEXT
10.8.3 UPDATETEXT
10.9 环境方面的注意事项
10.9.1 区分大小写
10.9.2 NULL值和ANSI一致性设置
10.9.3 针对本地的SET选项
小结
第11章 光标
11.1 引言
11.2 光标的基本知识
11.3 光标和ISAM
11.3.1 ISAM:过多的命令和网络交通
11.3.2 ISAM:过量地使用服务器资源
11.3.3 ISAM:不必要的长事务
11.4 光标模型
11.4.1 Transact-SQL光标
11.4.2 API服务器光标
11.4.3 客户光标
11.4.4 默认的结果集
11.4.5 API服务器光标和Transact-SQL光标之比较
11.5 适度使用光标
11.5.1 逐行操作
11.5.2 查询操作
11.5.3 滚动应用程序
11.5.4 选择光标模型
11.5.5 光标的成员、滚动和对修改的敏感度
11.6 Transact-SQL光标的句法和行为
11.6.1 DECLARE
11.6.2 OEN
11.6.3 FETCH
11.6.4 UPDATE
11.6.5 DELETE
11.6.6 CLOSE
11.6.7 DEALLOCATE
11.6.8 Transact-SQL光标的行为
11.6.9 最简单的光标句法
11.6.10 完全可滚动的Transact-SQL光标
11.6.11利用Transact-SQL光标控制并发性
小结
第12章 Transact-SQL示例和编程之谜
12.1 引言
12.2 用触发器实现参照动作
12.3 编程之谜
12.3.1 生成测试数据
12.3.2 查找前n个值
12.3.3 获取排队顺序
12.3.4 时间序列问题:查找不同时间段间的差异
12.3.5 累计求和问题
12.3.6 隔n行采样问题
12.3.7 查找含匹配列的行
12.3.8 将数据放到一个Web页上――快速方法
12.3.9 扩充层次结构(或称“物料账单问题”)
12.3.10 用选择的方法取代迭代
12.3.11 获取表中的行数――最快方法
12.3.12 保存计算列
12.3.13 数据透视表(或称“交叉表”)
12.3.14 将SQLServer与e-mail集成
12.3.15 模拟一个分布式查询
12.3.16 模拟一个分布式、分区式插入
12.3.17 将文本复制到有序的varchar型列中
12.3.18 实例化并执行一个自动对象
小结
第13章 加锁
13.1 引言
13.2 加锁管理器
13.2.1 加锁管理器和隔离等级
13.2.2 自旋锁
13.2.3 死锁
13.2.4 加锁和内存
13.3 用户数据的加锁类型
13.4 查看加锁
13.5 加锁的兼容性
13.5.1 约束连接
13.5.2 行加锁和页加锁
13.5.3 插入行加锁
14.17.1 优化器
14.18 监测查询性能
14.18.1 STATISTICSIO
14.18.2 STATISTICSTIME
14.18.3 SHOWPLAN ON
14.18.4 观察优化器的决策过程
14.18.5 使用优化器和加锁暗示
小结
第15章 配置与性能监测
15.1 引言
15.2 检查和调整WindowsNT配置设置
15.2.1 WindowsNT任务管理
15.2.2 WindowsNTServer的资源分配
15.2.3 WindowsNT服务器PAGEFILE.SYS位置
15.2.4 WindowsNT文件系统选择
15.2.5 次要的WindowsNT服务
15.2.6 WindowsNT网络协议
15.3 检查和调整SQLServer配置参数
15.3.1 影响整个服务器的选项:sp-configure设置
15.3.2 数据库选项
15.3.3 插入行加锁
15.3.4 缓冲区管理器选项
15.3.5 SQLSERVR.EXE的启动参数
15.4 维护系统
15.5 监测系统性能
15.5.1 性能监测器计数器
15.5.2 监测性能的其它考虑
小结
第5部分 附录
附录1 SQLServer的内置共用变量
附录2 推荐读物
参考文献
· · · · · · (
收起)