本书是作者多年从事SQL Server 2005数据库系统管理、应用开发和教学培训的经验总结。全书深入浅出地剖析了SQL Server 2005系统管理和基于.NET应用开发的重点技术,突出了读者容易忽略的、但又是管理和开发实践中需要注意的重点,比如数据库的日常管理和维护、存储过程的设计、事务实现机制等。相信读者会有耳目一新的体会。
全书分为两大部分,共22章,内容包括构建服务器管理、数据库管理、文件管理、集成服务、维护计划、服务、T-SQL语法、DBCC命令、安全管理、事务和锁、备份和恢复、高可用性、基于.NET(C#)的DBA Expert项目开发等。
本书内容、思路流畅、实用性强,所有实例均经过上机反复实践;对常见的问题提出了解决方案,具有很强的指导性。本书适合SQL Server 2005数据库管理人员、数据库应用开发人员阅读和参考,可作为管理SQL Server 2005数据库的技术手册、数据库技术培训教材,以及参加SQL Server 2005认证考试的参考书。
博学数据库专家继专业畅销书《SQL Server 2005系统管理实录》后的又一力作,从零开始,用大量实例深入浅出讲解,兼顾SQL Server系统管理与应用开发,遵循作者一贯写作原则——将知识点讲透,将操作步骤讲清,突出介绍常用操作,注重实用性,方便读者实践。
作者多年实践经验的沉淀之作,从管理、应用、开发等角度诠释SQL Server2005精华,具有非常强的参考价值。突出特点有:兼顾广度有深度、理论与实践,系统管理与应用开发并重;内容讲解深入浅出、通俗易懂,穿插丰富实用案例。
赵松涛,北京大学计算机专业硕士。高校教学5年,从事计算机网络和数据库系统管理、应用开发6年。目前在一线从事SQL Server和Oracle数据库的系统管理、应用开发,并为大型企业和高校做培训,广受学员好评。从2001年至今,先后独立和合作出版了6本数据库方面的图书。
第1章 安装SQL Server5
1.1 版本
1.2 组件
1.2.1 服务器组件
1.2.2 客户机组件
1.3 安装企业版
1.3.1 安装环境
1.3.2 安装服务器
1.3.3 安装客户机
1.3.4 安装Service Pack
1.4 服务器的后台服务
1.4.1 MSSQLSERVER
1.4.2 SQLSERVERAGENT
1.4.3 MSSQLServerOLAPService
1.4.4 ReportServer
1.4.5 MSDTSServer
1.4.6 SQLBrowser
1.4.7 MSFTESQL
1.5 客户机上的管理工具
1.5.1 Management Studio
1.5.2 Visual Studio5
1.5.3 SQL Server配置管理器
1.5.4 通知服务命令提示
1.5.5 报表服务配置
1.5.6 SQL Server错误和使用情况报告
1.5.7 SQL Server外围应用配置器
1.5.8 SQL Server Profiler
1.5.9 数据库引擎优化顾问
1.6 本章小结
1.7 习题
第2章 SQL Server5新特性
2.1 Service Broker
2.1.1 分布式系统
2.1.2 分布式数据库系统
2.1.3 Service Broker的作用
2.1.4 Service Broker的术语
2.1.5 Service Broker的组件
2.1.6 Service Broker的实现
2.2 CLR集成
2.2.1 .NET是什么
2.2.2 .NET Framework是什么
2.2.3 .NET Framework的特性
2.2.4 .NET Framework的结构
2.2.5 CLR是什么
2.2.6 CLR集成的优点
2.2.7 CLR集成的编程增强
2.2.8 CLR集成是否可以取代T-SQL
2.2.9 启用CLR集成
2.3 专用管理员连接DAC
2.3.1 有权使用DAC的用户
2.3.2 DAC使用的局限
2.3.3 DAC使用的命令
2.3.4 Sqlcmd使用DAC
2.3.5 Management Studio使用DAC
2.4 resource系统数据库
2.4.1 resource数据库在哪里
2.4.2 如何使用resource数据库
2.5 用户与架构分离
2.5.1 与架构相关的概念
2.5.2 基于用户的数据对象描述
2.5.3 基于架构的数据对象描述
2.5.4 用户与架构分离的优点
2.6 分区
2.6.1 概念
2.6.2 类型
2.6.3 分区的数据对象
2.7 本章小结
2.8 习题
第3章 配置SQL Server5网络
3.1 网络基础
3.1.1 网络工作模式
3.1.2 网络管理模式
3.1.3 网络通信协议
3.1.4 TCP/IP
3.1.5 IP地址
3.1.6 端口
3.2 SQL Server网络基础
3.2.1 进程和线程
3.2.2 IPC
3.2.3 常见的IPC机制
3.2.4 Net-Library
3.3 网络中的名称
3.3.1 服务器NetBIOS名称
3.3.2 实例名称
3.3.3 服务器别名
3.4 TDS协议
3.4.1 TDS的概念
3.4.2 TDS的作用
3.4.3 TDS的结构
3.5 端点
3.5.1 端点的作用
3.5.2 端点的类型
3.5.3 TDS端点
3.5.4 需不需要创建TDS端点
3.5.5 创建TDS端点
3.6 网络配置工具与步骤
3.6.1 网络配置工具
3.6.2 网络配置步骤
3.7 配置共享内存网络
3.7.1 配置服务器
3.7.2 配置客户机
3.8 配置TCP/IP网络
3.8.1 配置服务器
3.8.2 配置客户机
3.9 配置命名管道网络
3.9.1 配置服务器
3.9.2 配置客户机
3.10 配置网络中的常见问题
3.10.1 怎样选择网络协议
3.10.2 不同的网络协议的效率
3.10.3 隐藏实例(HideInstance)
3.11 本章小结
3.12 习题
第4章 服务器日常管理
4.1 注册
4.1.1 注册服务器
4.1.2 排除常见注册故障
4.1.3 总结注册方法
4.2 暂停服务器
4.2.1 在[控制面板]中暂停
4.2.2 在[Management Studio]中暂停
4.2.3 在[SQL Server配置管理器]中暂停服务器
4.3 关闭服务器
4.3.1 在[控制面板]中关闭
4.3.2 在[Management Studio]中关闭
4.3.3 在[SQL Server配置管理器]中关闭
4.4 启动服务器
4.4.1 在[控制面板]中启动
4.4.2 在[Management Studio]中启动
4.4.3 在[SQL Server配置管理器]中启动
4.5 服务启动信息
4.5.1 查看启动信息的方法
4.5.2 分析启动信息的内容
4.5.3 服务启动顺序
4.6 服务启动参数
4.6.1 配置方法
4.6.2 -d参数
4.6.3 -l参数
4.6.3 -e参数
4.7 最小配置启动
4.7.1 -f参数
4.7.2 最小配置的含义
4.8 本章小结
4.9 习题
第5章 服务器配置
5.1 常规参数
5.1.1 基础信息
5.1.2 排序规则
5.2 内存配置
5.2.1 有关内存的术语
5.2.2 SQL Server有关内存的术语
5.2.3 SQL Server服务器内存结构
5.2.4 在内存中寻找数据
5.2.5 时钟管理算法
5.2.6 内存空间分配
5.2.7 最小服务器内存
5.2.8 较大服务器内存
5.2.9 索引占用的内存
5.2.10 每次查询占用的最小内存
5.2.11 AWE内存分配
5.3 处理器配置
5.3.1 处理器关联掩码
5.3.2 I/O关联掩码
5.3.3 较大工作线程数
5.3.4 提升SQL Server优先级
5.3.5 使用Windows纤程
5.4 安全性配置
5.4.1 服务器身份验证
5.4.2 登录审核
5.4.3 启用服务器账户
5.4.4 启用C2审核跟踪
5.5 连接配置
5.5.1 较大并发连接数
5.5.2 使用查询调控器
5.5.3 远程服务器连接
5.5.4 默认连接选项
5.6 数据库设置配置
5.6.1 默认索引填充因子
5.6.2 磁带备份和还原参数
5.6.3 恢复间隔
5.6.4 数据库默认位置
5.7 高级配置
5.7.1 并行
5.7.2 网络
5.7.3 杂项
5.8 本章小结
5.9 习题
第6章 数据库日常管理
6.1 数据库的逻辑结构
6.1.1 数据库关系图
6.1.2 表
6.1.3 索引
6.1.4 视图
6.1.5 同义词
6.1.6 存储过程
6.1.7 数据库触发器
6.1.8 类型
6.1.9 规则
6.1.10 默认值
6.1.11 程序集
6.2 数据库的物理结构
6.2.1 数据文件
6.2.2 日志文件
6.3 数据库的类型
6.3.1 系统数据库
6.3.2 用户数据库
6.3.3 数据库快照
6.4 数据库的状态
6.4.1 查看数据库状态
6.4.2 状态值的含义
6.5 创建数据库
6.5.1 数据库命名规则
6.5.2 创建数据库
6.6 配置数据库
6.6.1 备份信息
6.6.2 大小和可用空间
6.6.3 对用户数的勘误
6.6.4 排序规则
6.6.5 恢复模式
6.6.6 页验证
6.6.7 只读数据库
6.6.8 限制访问
6.6.9 统计信息
6.6.10 自动关闭
6.6.11 自动收缩
6.7 分离和附加数据库
6.7.1 分离数据库
6.7.2 附加用户数据库
6.8 脱机和联机数据库
6.8.1 脱机用户数据库
6.8.2 联机用户数据库
6.9 重命名数据库
6.9.1 重命名数据库
6.9.2 Alter Database重命名数据库
6.10 本章小结
6.11 习题
第7章 数据库文件管理
7.1 文件类型
7.1.1 主要数据文件
7.1.2 次要数据文件
7.1.3 日志文件
7.2 文件状态
7.2.1 查看文件状态
7.2.2 文件状态的含义
7.3 数据文件管理
7.3.1 数据文件内部的读写机制
7.3.2 添加次要数据文件
7.3.3 删除次要数据文件
7.3.4 调整数据文件的增长属性
7.3.5 收缩数据文件
7.3.6 移动数据文件的数据
7.4 日志文件管理
7.4.1 VLF
7.4.2 日志文件的内部读写机制
7.4.3 日志文件的作用
7.4.4 日志文件的特点
7.4.5 日志文件的结构
7.4.6 查看日志文件内容
7.4.7 添加日志文件
7.4.8 移动日志文件的内容
7.4.9 删除日志文件
7.5 文件组
7.5.1 概念
7.5.2 文件组的读写机制
7.5.3 文件组的使用原则
7.6 本章小结
7.7 习题
第8章 服务
8.1 服务基础
8.1.1 作用
8.1.2 作业(Job)
8.1.3 计划(Schedule)
8.1.4 警报(Alert)
8.1.5 操作员(Operator)
8.2 管理服务
8.2.1 启动服务
8.2.2 配置服务
8.2.3 查看服务的错误日志
8.3 基于服务的案例
8.3.1 创建操作员
8.3.2 创建警报
8.3.3 创建计划
8.3.4 创建作业
8.3.5 配置警报属性
8.3.6 总结案例的关系
8.3.7 查看作业的执行情况
8.4 本章小结
8.5 习题
第9章 维护计划
9.1 作用
9.2 维护计划管理
9.2.1 用向导创建维护计划
9.2.2 修改维护计划
9.2.3 修改优先约束
9.2.4 修改执行服务器
9.2.5 执行维护计划
9.3 本章小结
9.4 习题
第10章 集成服务SSIS
10.1 SSIS基础
10.1.1 作用
10.1.2 体系结构
10.2 SSIS使用
10.2.1 导出数据
10.2.2 查看包
10.2.3 执行包
10.3 SSIS项目开发
10.3.1 开发SSIS项目
10.3.2 解决方案
10.3.3 SSIS项目剖析
10.3.4 开发复杂的SSIS项目
10.4 SSIS包
10.4.1 总体结构
10.4.2 容器
10.4.3 任务
10.4.4 优先约束
10.4.5 控制流
10.4.6 数据流
10.4.7 事件处理程序
10.4.8 包资源管理器
10.5 本章小结
10.6 习题
第11章 T-SQL基础知识
11.1 语法约定
11.2 数据对象表示方法
11.2.1 参数说明
11.2.2 使用实例
11.3 安装AdventureWorks数据库
11.4 研究T-SQL的原则
11.4.1 功能与效率并重的原则
11.4.2 数据与日志并重的原则
11.5 T-SQL的执行机制
11.5.1 引擎的工作流程
11.5.2 引擎的体系结构
11.5.3 T-SQL的执行过程
11.6 T-SQL的执行计划
11.6.1 执行计划的内容
11.6.2 执行计划的执行
11.6.3 执行计划的老化
11.6.4 查看T-SQL的执行计划
11.7 T-SQL的优化
11.7.1 查询优化器
11.7.2 基于CBO的优化
11.7.3 数据库统计信息
11.7.4 查看表的统计信息
11.8 研究T-SQL效率的方法
11.8.1 客户端统计信息
11.8.2 T-SQL的I/O
11.8.3 T-SQL的执行时间
11.8.4 T-SQL的执行计划
11.8.5 编程计算T-SQL的执行时间
11.8.6 编程计算成批T-SQL的执行时间
11.9 研究T-SQL数据的方法
11.9.1 DBCC PAGE命令
11.9.2 DBCC LOG命令
11.10 本章小结
11.11 习题
第12章 T-SQL语法要素
12.1 数据类型
12.1.1 整数型
12.1.2 二进制型
12.1.3 字符串型
12.1.4 日期时间型
12.1.5 小数型
12.1.6 货币型
12.1.7 其他类型
12.2 常量
12.2.1 常见的常量定义格式
12.2.2 常见的常量使用方法
12.3 变量
12.3.1 全局变量
12.3.2 局部变量
12.4 运算符
12.4.1 算术运算符
12.4.2 位运算符
12.4.3 比较运算符
12.4.4 逻辑运算符
12.4.5 字符串连接运算符
12.4.6 赋值运算符
12.4.7 运算符的优先级
12.5 T-SQL函数
12.5.1 聚合函数
12.5.2 日期和时间函数
12.5.3 数学函数
12.5.4 字符串函数
12.6 T-SQL表达式
12.6.1 表达式的组合
12.6.2 表达式的结果
12.7 注释
12.7.1 单行注释
12.7.2 多行注释
12.8 批处理
12.8.1 批处理的含义
12.8.2 批处理的特点
12.9 流程控制
12.9.1 程序块语句BEGIN..END
12.9.2 判断语句IF..ELSE
12.9.3 循环语句WHILE
12.9.4 分支判断语句CASE
12.9.5 无条件退出语句RETURN
12.9.6 无条件跳转语句GOTO
12.9.7 延期执行语句WAITFOR
第13章 查询语句研究
13.1 语法结构
13.2 选择列表
13.2.1 选择所有列
13.2.2 选择特定列
13.2.3 包含运算符的查询
13.2.4 包含函数的查询
13.2.5 消除重复项
13.3 FROM子句
13.3.1 使用表别名
13.3.2 使用表提示
13.4 WHERE子句
13.4.1 WHERE子句中的运算符
13.4.2 比较查询
13.4.3 范围查询
13.4.4 列表查询
13.4.5 模式匹配查询
13.5 GROUP BY子句
13.5.1 语法结构
13.5.2 实例分析
13.6 ORDER BY子句
13.6.1 语法结构
13.6.2 实例分析
13.7 本章小结
13.8 习题
第14章 数据操作语句研究
14.1 INSERT语句研究
14.1.1 表结构和索引结构
14.1.2 执行前的日志情况分析
14.1.3 执行情况分析
14.1.4 执行后的日志情况分析
14.1.5 研究数据的变化情况
14.1.6 研究结论
14.2 UPDATE语句研究
14.2.1 执行前的日志情况分析
14.2.2 执行情况分析
14.2.3 执行后的日志情况
14.2.4 研究结论
14.3 DELETE语句研究
14.3.1 执行前的日志情况分析
14.3.2 执行情况分析
14.3.3 执行后的日志情况
14.3.4 研究结论
14.4 深入探讨语句内部机制
14.4.1 谁先插入数据
14.4.2 谁先更新数据
14.4.3 谁先删除数据
14.5 本章小结
14.6 习题
第15章 DBCC命令深入研究
15.1 验证类DBCC命令
15.1.1 DBCC CHECKALLOC
15.1.2 DBCC CHECKCATALOG
15.1.3 DBCC CHECKDB
15.2 DBCC CLEANTABLE深入研究
15.2.1 创建测试表
15.2.2 表的存储空间分配
15.2.3 删除列
15.2.4 删除列后表的存储空间分配
15.2.5 执行DBCC CLEANTABLE命令
15.2.6 DBCC CLEANTABLE命令日志分析
15.2.7 存储空间的变化
15.2.8 结论
15.3 DBCC DBREINDEX深入研究
15.3.1 语法结构
15.3.2 查询执行前的页面情况
15.3.3 查询执行前的日志情况
15.3.4 重建索引
15.3.5 查询执行后的日志情况
15.3.6 查询执行后的页面情况
15.4 本章小结
15.5 习题
第16章 安全管理
16.1 安全方案
16.1.1 基于网络安全机制实现的方案
16.1.2 基于SQL Server5本身实现的方案
16.2 网络安全方案
16.2.1 网络安全的新需求
16.2.2 常规加/解密技术
16.2.3 公钥加/解密技术
16.2.4 公钥加/解密技术的实现方案
16.2.5 产生公