分享
 
 
 

SQL Server2005性能监测与优化

SQL Server2005性能监测与优化  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机与互联网,数据库,SQLServer,
  品牌: 袁鹏飞

基本信息·出版社:人民邮电出版社

·页码:330 页

·出版日期:2009年

·ISBN:7115196729/9787115196729

·条形码:9787115196729

·包装版本:1版

·装帧:其他

·开本:16

·正文语种:中文

产品信息有问题吗?请帮我们更新产品信息。

内容简介《SQL Server2005性能监测与优化》从数据库的基本工作原理入手,系统介绍了SQL Server数据库体系结构、索引优化、SQL语句优化、性能优化工具、系统存储过程、系统表、系统视图、分区技术、死锁处理等,最后帮助读者设计实现两个数据库性能分析和监测工具。《SQL Server2005性能监测与优化》内容丰富、注重实用,理论讲解与案例应用相结合,特别适合SQL Server数据库管理员和应用程序开发人员,以及对相关技术感兴趣的读者阅读。

SQL Server是Microsoft公司在数据库领域中非常重要的产品,是关系型数据库的代表产品之一。很多大型应用系统都采用SQL Server作为后台数据库。怎样才能设计出性能高效的SQL Server数据库应用程序是很多软件企业非常关注的问题。《SQL Server2005性能监测与优化》结合实例介绍如何对SQL Server数据库进行设计和性能优化,解决目前数据库应用系统中存在的性能问题。

媒体推荐作为SQL Server的研发团队的成员,最后想和读者简单分享最新发布的SQL Server 2008在性能监测及优化方面的进一步提升。新功能包括数据压缩,备份压缩,日志压缩,资源管理器,T-SQL计划引导支持(Plan guide support),等等。建议有兴趣的读者进一步关注。

——微软中国研发集团SQL Server研发中心 研发部门经理 赵晓燕

编辑推荐《SQL Server2005性能监测与优化》书把关注的重心放在数据库性能监测和优化方面,这是开发数据库应用系统的核心所在,也是很多数据库程序设计人员最为关注的问题。它需要丰富的经验和准确的判断力,不可能照猫画虎。《SQL Server2005性能监测与优化》涵盖了SQL Server性能监测和分析的各个领域,结合了作者多年的实践经验,能够使读者循序渐进地提升自己的业务水平,从数据库程序开发人员转变为数据库优化大师,从丑小鸭成长为白天鹅。 为了避免重理论而轻实践的问题,书中以信用卡消费管理系统为案例,利用各种方式对该系统进行优化,使读者在了解理论的同时,直接从实践中验证效果。图书的最后还介绍了两个数据库性能分析和监测工具,可以帮助读者解决实际工作中遇到的性能问题。

饭菜几乎人人都会做,但厨艺好到可以称为厨师的比例极少,如果你参加过IT公司的招聘工作,就会发现自称懂数据库的大有人在,而真正掌握、精通数据库的人却比例极少。那么怎样才能精通数据库呢?实践是其一,学习提高是其二。好比一个主妇,做数十年饭,实践一辈子,未必是个好厨娘。做数据库应用的工程师也一样,不仅要实践,还要不断学习,抓住重点,总结经验,业务水平才会有质的提高。

《SQL Server2005性能监测与优化》在编写过程中兼顾SQL Server 2000和SQL Server 2005的工作原理和使用方法,大多数实例和优化方法都适用于SQL Server 2000数据库。

目录

第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 实例的后续工作

……[看更多目录]

序言你会设计数据库应用程序吗?即使是入行时间不长的程序员也多半会回答:“这有什么难的。”的确,随着各种程序设计语言的不断发展和完善,开发数据库应用程序已经变得非常简单,只要掌握SQL语句和基本的数据库管理方法,就可以通过ADO或ADO.NET等通用数据接口访问后台数据库。但是不要以为这样就可以成为一名优秀的数据库开发人员了,会画画的人很多,但称得上大师级的人又有几个?SQL语句和ADO只是打开数据库编程这扇大门的钥匙,如果只停留在这个层面上,就只能做一个初级水平的程序员,每天辛苦地进行着重复的劳动。

哪些问题是目前数据库管理和开发过程中普遍存在而又不好解决的呢?从根本上来说,功能和性能是衡量数据库应用系统的两大重要指标。在大多数情况下,功能来源于对客户需求的收集和整合。用户对一个软件产品的认识首先取决于其操作界面是否友好,功能是否完备而且实用,是否满足实际工作需要等。在数据库应用系统使用的初期,产品功能将直接影响客户对产品的评价;但系统使用一段时间后,数据库中的数据就会越来越多,此时性能问题就会凸现出来。在很多情况下,功能强大和高性能是矛盾的。要追求强大功能,就需要对数据库中的数据进行各种不同情况下的查询、加工和处理,这些都会影响系统性能。而没有性能作为保证,产品的功能再强大也没有意义。对于电信、银行、公安、互联网站等行业的大型应用系统,其后台数据库中通常会保存几十万、数百万、数千万,甚至更多的数据。例如公安部的人口身份信息数据库,其中保存了全国近13亿人口的身份数据。如果不能很好地对数据库进行设计和优化,对于上层应用来说,将带来灾难性的后果。试想,如果需要几个小时的时间才能从13亿数据中检索出需要的记录,那么这样的数据库应用程序是没有任何实用价值的。从上面的分析不难看出,性能问题是影响数据库应用程序的重要因素。如果数据库设计不合理,有可能产生大量的垃圾数据,从而导致系统越来越慢。目前大多数数据库用户都只了解数据库的基本应用,比如管理数据库、创建表和视图、插入/修改/删除数据、查询数据等。而对于数据库的工作原理、如何规划和设计数据库结构、如何优化数据库的性能都知之甚少。这样设计出来的数据库应用系统,虽然从功能上可能满足用户的需要,但随着数据量的增加,系统负担会越来越重,甚至无法正常使用。

文摘插图:

SQL Server2005性能监测与优化

第1章数据库设计与优化原理——从头说起

要对数据库应用系统进行优化,首先应该了解数据库的基本设计原理,就像医生必须了解人体的构造和工作机理一样。

1.1 数据库系统理论基础

将简单介绍数据库系统理论基础,包括数据库系统的发展历程和一些基本的概念。

1.1.1 数据库系统的发展历程

数据存储是计算机的基本功能之一。在计算机刚刚问世的时候,人们将程序存储在纸带上,使用卡片或纸带阅读器来读取其中的数据。此时的数据存储处于人工管理阶段,计算机主要用于科学计算,需要存储的数据量较小;没有专门的数据库管理软件,完全靠用户手动操作;数据无法实现共享,只能针对特定的程序使用。

随着计算机技术的不断发展,在20世纪60年代,计算机的存储能力得到了进一步的提升,计算机除了用于科学计算外,还用于管理。同时,产生了磁带、磁鼓等外部存储设备,有了专门管理数据的文件系统。此时的数据存储处于文件系统阶段,数据以文件的形式被保存在外部存储介质上,数据可以在不同的程序中被应用,具有一定程度的独立性。

随着计算机的不断普及,数据存储量越来越大,数据之间的关系也越来越复杂,数据库系统的概念已经产生。最初的数据库系统包括两种主要的数据模型,即网状模型(如Oralce的cODAsYL)和层次模型(如IBM的IMS)。20世纪70年代至今,关系型数据库和数据库管理系统(DBMS)产生并得到不断发展。l970年,IBM的研究员E.F.Codd博士发表了《大型共享数据银行的关系模型》一文,提出了关系模型的概念。后来他又发表多篇文章,奠定了关系数据库的基础。关系数据模型是以集合论中的关系概念为基础发展起来的。关系模型中,无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中,关系就是表,一个关系数据库由若干个表组成。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有