SQL Server2005性能监测与优化

目 录内容简介
第1章 数据库设计与优化原理——从头说起
要对数据库应用系统进行优化,首先应该了解数据库的基本设计原理,就好像医生必须了解人体的构造和工作机理一样。
1.1 数据库系统理论基础
1.1.1 数据库系统的发展历程
1.1.2 数据库管理系统(DBMS)
1.2 数据模型
1.2.1 数据模型分类
1.2.2 实体-联系(E-R)模型
1.3 与数据库沟通的语言——SQL
1.3.1 数据定义语言
1.3.2 数据操作语言
1.3.3 使用SELECT语句
1.3.4 优化SELECT语句的原则
第2章 SQL Server数据库体系结构
提到性能优化,很多人第一个反应就是对硬件升级。那么怎么做才能合理利用服务器的硬件呢?
2.1 内存管理与优化
2.1.1 Windows内存管理
2.1.2 SQL Server 2005对大容量内存的支持
2.1.3 手动配置内存选项
2.1.4 监测SQL Server内存使用情况
2.1.5 优化Windows内存性能
2.2 存储引擎与优化
2.2.1 数据库文件和文件组
2.2.2 页和区
2.2.3 收缩数据或事务日志空间
2.2.4 监测SQL Server磁盘活动情况
2.2.5 优化SQL Server服务器的磁盘性能
2.3 处理器管理与优化
2.3.1 查看CPU活动情况
2.3.2 监测SQL Server的CPU活动情况
2.3.3 线程管理
第3章 信用卡消费演示系统(Visual C#)
要对SQL Server数据库进行性能优化,可不能纸上谈兵。拿个超大的数据库应用系统来讲解,又很难讲清楚应用系统本身的逻辑关系。
本章使用Visual C#设计一个简易的信用卡消费演示系统,模拟不同用户同时使用信用卡进行刷卡消费的情形,产生大量的刷卡消费数据。本书后面也以此数据库作为性能优化的对象。
3.1 系统分析与设计
3.1.1 实例功能描述
3.1.2 数据库表设计
3.2 设计工程框架
3.2.1 创建工程
3.2.2 为表添加类
3.2.3 设计主界面
3.3 实现模拟刷卡消费
3.3.1 设计Consume类
3.3.2 在主窗体中启动刷卡消费线程
3.4 设计个人消费记录统计报表
3.4.1 在ListView控件中显示统计数据
3.4.2 优化在ListView控件中显示数据的方法
第4章 索引——最直接的切入点
通过硬件升级进行优化当然效果比较直观,但银子也不是从天上掉下来的。从数据库本身着手进行优化,最直接的切入点就是索引。
4.1 索引就好像是书的目录
4.1.1 索引的定义
4.1.2 查看索引信息
4.1.3 创建索引
4.1.4 修改索引
4.1.5 删除索引
4.1.6 使用SQL语句获取索引信息
4.2 统计信息是对索引的补充
4.2.1 查看统计信息
4.2.2 创建统计信息
4.2.3 修改统计信息
4.2.4 删除统计信息
4.3 好的索引设计等于成功的一半
4.3.1 使用索引优化数据库查询效率
4.3.2 无法使用索引的SELECT语句
4.3.3 重新组织和重新生成索引
第5章 优化SQL语句的效率
SQL语句的基本语法并不复杂,常用语句的数量也并不多,学会容易,但学精却并不简单。
5.1 优化SELECT语句
5.1.1 连接查询的优化
5.1.2 控制查询的行和列的数量
5.1.3 慎用DISTINCT关键字
5.1.4 慎用UNION关键字
5.1.5 判断表中是否存在记录
5.2 对大批量插入、修改和删除数据操作的优化
5.2.1 使用SQL脚本模拟实时批量插入数据
5.2.2 使用INSERT INTO...SELECT语句优化批量插入操作
5.2.3 优化修改和删除语句
5.3 使用存储过程优化执行速度
5.3.1 存储过程的基本概念
5.3.2 创建存储过程
5.3.3 执行存储过程
5.3.4 修改和重命名存储过程
5.3.5 删除存储过程
5.3.6 在存储过程中使用游标
5.3.7 在存储过程中使用临时表
5.4 使用特殊的存储过程——触发器
5.4.1 触发器的基本概念
5.4.2 inserted和deleted表
5.4.3 创建触发器
5.4.4 修改和重命名触发器
5.4.5 删除触发器
5.5 视图也需要优化
5.5.1 基本概念
5.5.2 索引视图
第6章 常用性能监测和优化工具
“工欲善其事,必先利其器”,子的话还是很有道理的。要分析和优化SQL Server数据库的性能,同样必须借助一些工具。
6.1 SQL Server Profiler——私家侦探
6.1.1 SQL Server Profiler的基本使用方法
6.1.2 筛选跟踪数据
6.1.3 重播跟踪
6.1.4 实用SQL Server Profiler定位和分析问题
6.2 数据库引擎优化顾问——你身边的专家
6.2.1 分析数据库性能
6.2.2 优化选项
6.2.3 应用建议
6.2.4 使用dta实用工具
6.3 RML分析工具——秘密武器
6.3.1 下载和安装
6.3.2 ReadTrace实用工具
6.3.3 OSTRESS实用工具
第7章 使用语句监测和优化数据库——从高手进化到专家
如果能够灵活掌握前面介绍的内容,在一般用户眼里,你已经算得上是高手了。但如果想成为专家,还需要了解更多关于SQL Server数据库的内部机制。事实上,SQL Server提供了大量的系统存储过程、系统函数、系统视图和语句,但很多数据是在企业管理器和其他工具中无法看到的。能够查看到一般人无法获知的数据,再对这些数据进行分析,得出你的结论,那么你已经开始向一个专家转变了。
7.1 使用系统存储过程管理SQL Server Profiler
7.1.1 创建跟踪
7.1.2 设置事件和事件列
7.1.3 筛选跟踪数据
7.1.4 设置跟踪的状态
7.2 系统统计函数
7.2.1 获取尝试登录的次数
7.2.2 获取网络数据包统计信息
7.2.3 获取CPU的工作情况
7.2.4 获取数据库文件的I/O统计信息
7.2.5 获取I/O工作情况
7.2.6 获取磁盘读写情况
7.3 SQL Server系统视图
7.3.1 信息架构视图
7.3.2 数据库和文件目录视图
7.3.3 对象目录视图
7.3.4 兼容性视图
7.4 DBCC语句
7.4.1 缓冲区管理
7.4.2 监视内存状态
7.4.3 DBCC维护语句
7.4.4 DBCC ERRORLOG语句
第8章 大型数据库的分区技术
对于超大型数据库而言,即使使用前面介绍的方法再怎么优化,有些情况下也很难得到理想的效果。此时就有必要对数据库进行分区,把一个表或视图中的数据按一定的规则划分到不同的分区中,从而缩小查询的范围。就像学校里把一个年级划分为不同的班一样,找一年十二班的小明比找一年级的小明要容易很多。
8.1 分区的类型
8.1.1 硬件分区
8.1.2 水平分区
8.1.3 垂直分区
8.2 分区表和分区索引
8.2.1 确定分区依据列和分区数
8.2.2 创建文件组
8.2.3 分区函数
8.2.4 创建分区方案
8.2.5 创建分区表
8.2.6 创建分区索引
8.2.7 查看分区表明细信息
8.2.8 拆分和合并分区
8.2.9 分区中的数据移动
8.3 分区视图
8.3.1 设计分区视图
8.3.2 创建分区视图
8.3.3 在分区视图中修改数据
第9章 事务和锁
死锁是困扰数据库设计和开发人员的一个技术难题,当多个用户同时访问指定的数据库资源时,就有可能造成死锁。就像在十字路口多车抢行会造成堵塞一样。一旦死锁,大家都得不到所需要的数据库资源,直到一方放弃,这将严重影响数据库系统的性能。
9.1 事务
9.1.1 事务的特性
9.1.2 事务的分类
9.1.3 事务相关语句
9.1.4 嵌套事务
9.1.5 事务中不允许使用的SQL语句
9.2 了解锁定机制,防患于未然
9.2.1 锁定机制
9.2.2 锁的兼容性
9.2.3 锁的粒度和层次结构
9.2.4 显示锁活动情况
9.2.5 设置事务隔离级别选项
9.3 死锁其实并不可怕
9.3.1 产生死锁的原因
9.3.2 设置锁超时时间
9.3.3 尽量减少死锁
第10章 开发MSSQLDBAnalyzer性能分析工具
前面讲了那么多理论上的东西,现在介绍一个数据库性能分析的实例吧。这个实例可以对选择的SQL Server数据库中每个表和视图进行性能分析,找到可能影响性能的数据库对象。阅读本章需要具有一定的Visual C#开发基础。
10.1 实例的基本功能和总体设计
10.1.1 实例的基本功能
10.1.2 工程结构设计
10.2 DBBase工程设计与实现
10.2.1 工程结构
10.2.2 基础服务类
10.2.3 数据库基本操作类MssqlBase
10.2.4 数据库信息类DBInfo
10.2.5 数据库对象信息类DBObjInfo
10.2.6 数据库表信息类DBTable
10.2.7 数据库视图信息类DBView
10.2.8 字段信息类DBFieldBase和DBFieldInfo
10.3 ListViewSortManager工程设计与实现
10.3.1 工程结构
10.3.2 基本函数和数据结构
10.3.3 在ListView控件中画图的类ListViewItemImageManager
10.3.4 实现ListView控件自动排序的类ListViewSortManager
10.4 MSSQLDBAnalyzer工程设计与实现
10.4.1 登录对话框
10.4.2 设计主窗体
10.4.3 配置选项管理
10.4.4 表和视图性能分析
10.4.5 对ListView控件中的数据进行排序
10.4.6 查看表信息
10.4.7 查看视图信息
第11章 开发MssqlMonitor服务器性能监测工具
在分析数据库系统性能时,需要时刻关注SQL Server数据库的工作情况。这也是数据库管理员比较关注的问题。本章介绍一个数据库服务器性能监测工具,这个工具可以扫描指定网段,发现其中的SQL Server数据库服务器,还可以自动监测SQL Server服务器的CPU、内存、在线情况、端口工作情况等,当出现异常时及时通知管理员。
11.1 实例的基本功能和总体设计
11.1.1 实例的基本功能
11.1.2 数据库结构设计
11.1.3 工程结构设计
11.2 NetworkBase工程设计与实现
11.2.1 工程结构
11.2.2 设备信息类Device
11.2.3 获取网络信息的服务类NetService
11.2.4 子网信息类Subnet
11.2.5 WMI管理类WMIConnection
11.3 MssqlMonitor工程设计与实现
11.3.1 工程结构
11.3.2 配置文件管理类ConfigureService
11.3.3 数据库基础操作类DBBase
11.3.4 数据库信息类DBInfo
11.3.5 MsSqlserver数据库表管理类
11.3.6 设计主窗体
11.3.7 添加、修改和删除SQL Server服务器
11.3.8 扫描SQL Server服务器
11.3.9 显示SQL Server数据库基本信息
11.3.10 监测SQL Server数据库的工作状态
11.4 实例的后续工作
要对数据库应用系统进行优化,首先应该了解数据库的基本设计原理,就好像医生必须了解人体的构造和工作机理一样。
1.1 数据库系统理论基础
1.1.1 数据库系统的发展历程
1.1.2 数据库管理系统(DBMS)
1.2 数据模型
1.2.1 数据模型分类
1.2.2 实体-联系(E-R)模型
1.3 与数据库沟通的语言——SQL
1.3.1 数据定义语言
1.3.2 数据操作语言
1.3.3 使用SELECT语句
1.3.4 优化SELECT语句的原则
第2章 SQL Server数据库体系结构
提到性能优化,很多人第一个反应就是对硬件升级。那么怎么做才能合理利用服务器的硬件呢?
2.1 内存管理与优化
2.1.1 Windows内存管理
2.1.2 SQL Server 2005对大容量内存的支持
2.1.3 手动配置内存选项
2.1.4 监测SQL Server内存使用情况
2.1.5 优化Windows内存性能
2.2 存储引擎与优化
2.2.1 数据库文件和文件组
2.2.2 页和区
2.2.3 收缩数据或事务日志空间
2.2.4 监测SQL Server磁盘活动情况
2.2.5 优化SQL Server服务器的磁盘性能
2.3 处理器管理与优化
2.3.1 查看CPU活动情况
2.3.2 监测SQL Server的CPU活动情况
2.3.3 线程管理
第3章 信用卡消费演示系统(Visual C#)
要对SQL Server数据库进行性能优化,可不能纸上谈兵。拿个超大的数据库应用系统来讲解,又很难讲清楚应用系统本身的逻辑关系。
本章使用Visual C#设计一个简易的信用卡消费演示系统,模拟不同用户同时使用信用卡进行刷卡消费的情形,产生大量的刷卡消费数据。本书后面也以此数据库作为性能优化的对象。
3.1 系统分析与设计
3.1.1 实例功能描述
3.1.2 数据库表设计
3.2 设计工程框架
3.2.1 创建工程
3.2.2 为表添加类
3.2.3 设计主界面
3.3 实现模拟刷卡消费
3.3.1 设计Consume类
3.3.2 在主窗体中启动刷卡消费线程
3.4 设计个人消费记录统计报表
3.4.1 在ListView控件中显示统计数据
3.4.2 优化在ListView控件中显示数据的方法
第4章 索引——最直接的切入点
通过硬件升级进行优化当然效果比较直观,但银子也不是从天上掉下来的。从数据库本身着手进行优化,最直接的切入点就是索引。
4.1 索引就好像是书的目录
4.1.1 索引的定义
4.1.2 查看索引信息
4.1.3 创建索引
4.1.4 修改索引
4.1.5 删除索引
4.1.6 使用SQL语句获取索引信息
4.2 统计信息是对索引的补充
4.2.1 查看统计信息
4.2.2 创建统计信息
4.2.3 修改统计信息
4.2.4 删除统计信息
4.3 好的索引设计等于成功的一半
4.3.1 使用索引优化数据库查询效率
4.3.2 无法使用索引的SELECT语句
4.3.3 重新组织和重新生成索引
第5章 优化SQL语句的效率
SQL语句的基本语法并不复杂,常用语句的数量也并不多,学会容易,但学精却并不简单。
5.1 优化SELECT语句
5.1.1 连接查询的优化
5.1.2 控制查询的行和列的数量
5.1.3 慎用DISTINCT关键字
5.1.4 慎用UNION关键字
5.1.5 判断表中是否存在记录
5.2 对大批量插入、修改和删除数据操作的优化
5.2.1 使用SQL脚本模拟实时批量插入数据
5.2.2 使用INSERT INTO...SELECT语句优化批量插入操作
5.2.3 优化修改和删除语句
5.3 使用存储过程优化执行速度
5.3.1 存储过程的基本概念
5.3.2 创建存储过程
5.3.3 执行存储过程
5.3.4 修改和重命名存储过程
5.3.5 删除存储过程
5.3.6 在存储过程中使用游标
5.3.7 在存储过程中使用临时表
5.4 使用特殊的存储过程——触发器
5.4.1 触发器的基本概念
5.4.2 inserted和deleted表
5.4.3 创建触发器
5.4.4 修改和重命名触发器
5.4.5 删除触发器
5.5 视图也需要优化
5.5.1 基本概念
5.5.2 索引视图
第6章 常用性能监测和优化工具
“工欲善其事,必先利其器”,子的话还是很有道理的。要分析和优化SQL Server数据库的性能,同样必须借助一些工具。
6.1 SQL Server Profiler——私家侦探
6.1.1 SQL Server Profiler的基本使用方法
6.1.2 筛选跟踪数据
6.1.3 重播跟踪
6.1.4 实用SQL Server Profiler定位和分析问题
6.2 数据库引擎优化顾问——你身边的专家
6.2.1 分析数据库性能
6.2.2 优化选项
6.2.3 应用建议
6.2.4 使用dta实用工具
6.3 RML分析工具——秘密武器
6.3.1 下载和安装
6.3.2 ReadTrace实用工具
6.3.3 OSTRESS实用工具
第7章 使用语句监测和优化数据库——从高手进化到专家
如果能够灵活掌握前面介绍的内容,在一般用户眼里,你已经算得上是高手了。但如果想成为专家,还需要了解更多关于SQL Server数据库的内部机制。事实上,SQL Server提供了大量的系统存储过程、系统函数、系统视图和语句,但很多数据是在企业管理器和其他工具中无法看到的。能够查看到一般人无法获知的数据,再对这些数据进行分析,得出你的结论,那么你已经开始向一个专家转变了。
7.1 使用系统存储过程管理SQL Server Profiler
7.1.1 创建跟踪
7.1.2 设置事件和事件列
7.1.3 筛选跟踪数据
7.1.4 设置跟踪的状态
7.2 系统统计函数
7.2.1 获取尝试登录的次数
7.2.2 获取网络数据包统计信息
7.2.3 获取CPU的工作情况
7.2.4 获取数据库文件的I/O统计信息
7.2.5 获取I/O工作情况
7.2.6 获取磁盘读写情况
7.3 SQL Server系统视图
7.3.1 信息架构视图
7.3.2 数据库和文件目录视图
7.3.3 对象目录视图
7.3.4 兼容性视图
7.4 DBCC语句
7.4.1 缓冲区管理
7.4.2 监视内存状态
7.4.3 DBCC维护语句
7.4.4 DBCC ERRORLOG语句
第8章 大型数据库的分区技术
对于超大型数据库而言,即使使用前面介绍的方法再怎么优化,有些情况下也很难得到理想的效果。此时就有必要对数据库进行分区,把一个表或视图中的数据按一定的规则划分到不同的分区中,从而缩小查询的范围。就像学校里把一个年级划分为不同的班一样,找一年十二班的小明比找一年级的小明要容易很多。
8.1 分区的类型
8.1.1 硬件分区
8.1.2 水平分区
8.1.3 垂直分区
8.2 分区表和分区索引
8.2.1 确定分区依据列和分区数
8.2.2 创建文件组
8.2.3 分区函数
8.2.4 创建分区方案
8.2.5 创建分区表
8.2.6 创建分区索引
8.2.7 查看分区表明细信息
8.2.8 拆分和合并分区
8.2.9 分区中的数据移动
8.3 分区视图
8.3.1 设计分区视图
8.3.2 创建分区视图
8.3.3 在分区视图中修改数据
第9章 事务和锁
死锁是困扰数据库设计和开发人员的一个技术难题,当多个用户同时访问指定的数据库资源时,就有可能造成死锁。就像在十字路口多车抢行会造成堵塞一样。一旦死锁,大家都得不到所需要的数据库资源,直到一方放弃,这将严重影响数据库系统的性能。
9.1 事务
9.1.1 事务的特性
9.1.2 事务的分类
9.1.3 事务相关语句
9.1.4 嵌套事务
9.1.5 事务中不允许使用的SQL语句
9.2 了解锁定机制,防患于未然
9.2.1 锁定机制
9.2.2 锁的兼容性
9.2.3 锁的粒度和层次结构
9.2.4 显示锁活动情况
9.2.5 设置事务隔离级别选项
9.3 死锁其实并不可怕
9.3.1 产生死锁的原因
9.3.2 设置锁超时时间
9.3.3 尽量减少死锁
第10章 开发MSSQLDBAnalyzer性能分析工具
前面讲了那么多理论上的东西,现在介绍一个数据库性能分析的实例吧。这个实例可以对选择的SQL Server数据库中每个表和视图进行性能分析,找到可能影响性能的数据库对象。阅读本章需要具有一定的Visual C#开发基础。
10.1 实例的基本功能和总体设计
10.1.1 实例的基本功能
10.1.2 工程结构设计
10.2 DBBase工程设计与实现
10.2.1 工程结构
10.2.2 基础服务类
10.2.3 数据库基本操作类MssqlBase
10.2.4 数据库信息类DBInfo
10.2.5 数据库对象信息类DBObjInfo
10.2.6 数据库表信息类DBTable
10.2.7 数据库视图信息类DBView
10.2.8 字段信息类DBFieldBase和DBFieldInfo
10.3 ListViewSortManager工程设计与实现
10.3.1 工程结构
10.3.2 基本函数和数据结构
10.3.3 在ListView控件中画图的类ListViewItemImageManager
10.3.4 实现ListView控件自动排序的类ListViewSortManager
10.4 MSSQLDBAnalyzer工程设计与实现
10.4.1 登录对话框
10.4.2 设计主窗体
10.4.3 配置选项管理
10.4.4 表和视图性能分析
10.4.5 对ListView控件中的数据进行排序
10.4.6 查看表信息
10.4.7 查看视图信息
第11章 开发MssqlMonitor服务器性能监测工具
在分析数据库系统性能时,需要时刻关注SQL Server数据库的工作情况。这也是数据库管理员比较关注的问题。本章介绍一个数据库服务器性能监测工具,这个工具可以扫描指定网段,发现其中的SQL Server数据库服务器,还可以自动监测SQL Server服务器的CPU、内存、在线情况、端口工作情况等,当出现异常时及时通知管理员。
11.1 实例的基本功能和总体设计
11.1.1 实例的基本功能
11.1.2 数据库结构设计
11.1.3 工程结构设计
11.2 NetworkBase工程设计与实现
11.2.1 工程结构
11.2.2 设备信息类Device
11.2.3 获取网络信息的服务类NetService
11.2.4 子网信息类Subnet
11.2.5 WMI管理类WMIConnection
11.3 MssqlMonitor工程设计与实现
11.3.1 工程结构
11.3.2 配置文件管理类ConfigureService
11.3.3 数据库基础操作类DBBase
11.3.4 数据库信息类DBInfo
11.3.5 MsSqlserver数据库表管理类
11.3.6 设计主窗体
11.3.7 添加、修改和删除SQL Server服务器
11.3.8 扫描SQL Server服务器
11.3.9 显示SQL Server数据库基本信息
11.3.10 监测SQL Server数据库的工作状态
11.4 实例的后续工作
目 录内容简介
《SQL Server2005性能监测与优化》从数据库的基本工作原理入手,系统介绍了SQL Server数据库体系结构、索引优化、SQL语句优化、性能优化工具、系统存储过程、系统表、系统视图、分区技术、死锁处理等,最后帮助读者设计实现两个数据库性能分析和监测工具。《SQL Server2005性能监测与优化》内容丰富、注重实用,理论讲解与案例应用相结合,特别适合SQL Server数据库管理员和应用程序开发人员,以及对相关技术感兴趣的读者阅读。
SQL Server是Microsoft公司在数据库领域中非常重要的产品,是关系型数据库的代表产品之一。很多大型应用系统都采用SQL Server作为后台数据库。怎样才能设计出性能高效的SQL Server数据库应用程序是很多软件企业非常关注的问题。《SQL Server2005性能监测与优化》结合实例介绍如何对SQL Server数据库进行设计和性能优化,解决目前数据库应用系统中存在的性能问题。
SQL Server是Microsoft公司在数据库领域中非常重要的产品,是关系型数据库的代表产品之一。很多大型应用系统都采用SQL Server作为后台数据库。怎样才能设计出性能高效的SQL Server数据库应用程序是很多软件企业非常关注的问题。《SQL Server2005性能监测与优化》结合实例介绍如何对SQL Server数据库进行设计和性能优化,解决目前数据库应用系统中存在的性能问题。
比价列表
公众号、微信群

微信公众号

实时获取购书优惠