本书是Inside Microsoft SQL Server 2000的作者Kalen Delaney的又一经典著作,是Inside Microsoft SQL Server 2005系列四本著作中的一本。本书对SQL Server 2005存储引擎方面的知识进行了全面而详细的阐述,包括数据库文件、日志和恢复、表、索引及其管理、锁定和并发等内容。除了解释设计理念与运作原理外,书中还辅之以大量简短而有力的实例。您将跟随一位广受欢迎的作家同时也是SQL Server资深专家一起深入探索SQL Server存储引擎的技术内幕。\r\n 本书适合于专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者。本书不仅适合SQL Server 2005的初级读者,也适合SQL Server 2005的中高级读者。读者可以从中获得最优的方法、务实的建议和实例代码来帮助他们掌握创建和维护企业级关系数据库所需的复杂技术。本书是所有SQL Server 2005用户的案头必备之书。
前言\r\n致谢\r\n引言\r\n第1章 SQL Server 2005 的安装与升级 \r\n 1.1 SQL Server 2005安装前提 \r\n SQL Server 2005 版本 \r\n 软件要求 \r\n 硬件要求 \r\n 1.2 安装前决策 \r\n 安全性和用户上下文 \r\n 字符与排序规则 \r\n 排序次序 \r\n 安装SQL Server的多个实例 \r\n 安装SQL Server命名实例 \r\n 1.3 做好安装准备 \r\n SQL Server 2005升级向导 \r\n 1.4 迁移还是升级 \r\n 迁移 \r\n 升级 \r\n 升级后的操作 \r\n 1.5 选择组件 \r\n SQL Server数据库服务(数据库引擎) \r\n Analysis Services \r\n Reporting Services \r\n Notification Services \r\n Integration Services \r\n 工作站组件、联机丛书及开发工具 \r\n 1.6 小结 \r\n第2章 SQL Server 2005体系结构 \r\n 2.1 SQL Server引擎组件 \r\n 观测数据库引擎行为 \r\n 协议 \r\n 表格格式数据流(TDS)端点 \r\n 关系引擎 \r\n 存储引擎 \r\n SQLOS \r\n 2.2 内存 \r\n 缓冲池和高速数据缓冲区 \r\n 访问内存中的数据页 \r\n 管理数据高速缓冲区中的页面 \r\n 检查点 \r\n 管理其他高速缓存中的内存 \r\n 调节内存大小 \r\n 调节缓存池大小 \r\n 2.3 小结 \r\n第3章 SQL Server 2005的配置 \r\n 3.1 使用SQL Server 配置管理器 \r\n 配置网络协议 \r\n 默认的网络配置 \r\n 管理服务 \r\n 3.2 系统配置 \r\n 任务管理 \r\n 资源分配 \r\n 系统分页文件的位置 \r\n 非必需的服务 \r\n 网络协议 \r\n 与SQL Server 早期版本之间的兼容性 \r\n 跟踪标记(Trace Flags) \r\n SQL Server 的配置设定 \r\n 内存选项 \r\n 调度选项(Scheduling Options) \r\n 磁盘I/O 选项 \r\n 查询处理选项 \r\n 默认跟踪(Default Trace) \r\n 3.3 小结 \r\n第4章 数据库和数据库文件 \r\n第5章 日志和恢复 \r\n第6章 表 \r\n第7章 索引的内部构造和管理 \r\n第8章 锁定和并发
推荐序
有信息界诺贝尔奖美誉的图灵奖(Turing Award)得主Jim Gray在英文版推荐序中说道:“若论微软 SQL Server方面的最重要著作,大概非 Inside Microsoft SQL Server 系列丛书莫属。自SQL Server 6.5 发布以来,常驻在专业 SQL Server 开发者、DBA案头的就是对应各版本的该系列丛书了。”
由于 SQL Server 2005 大幅改版,新增了大量的功能,让原本极为厚重的 Inside Microsoft SQL Server类图书再无法以单行本形式出版,而改为四本合集的系列丛书。本书的执笔者为先前Inside Microsoft SQL Server 各版本的作者 Kalen Delaney。在Inside Micosoft SQL Server 2005 系列的四本书中,她改任丛书编辑,并亲自执笔撰写本书。
翻开本书即看到 Kalen Delaney 的致谢,她对本书的严谨要求,以及参与该书写作的作者队伍的实力让人叹为观止。大概很少有书有如此多的官方技术人员亲自参与写作,并提供技术咨询和技术审校。此外,本书还有微软出版社的编辑负责审稿,以及她的同事的大力相助。或许,要撰写SQL Server 这类大型产品的相关书籍还真需要人脉广、经验足才行。
笔者长年在企业间解决 SQL Server 的问题,例如不会用、性能不佳、无法扩充、不稳定、不安全等,其中最主要的原因是用户不够了解产品。尤其是一般人存有误解,以为 SQL Server 不需要专业的学习与管理,像Office等产品比较容易使用。若执行起来不如预期,他们便认定产品本身能力不足。其实不然,SQL Server 在世界各地都已经进入企业关键系统,数以兆(tera)计的数据量比比皆是。而我们所欠缺的是深入的知识与经验,以发挥 SQL Server 的各种功能。想善用 SQL Server,先要了解它是怎么办到的,此书便是钻研其设计原理的最佳途径。
相信常用数据库管理与开发的人员大都熟悉数据库、数据表或创建索引、管理事务。但对存储引擎(Storage Engine)如何实际完成你的要求,却讳莫如深。本书深入剖析了该服务的运作原理,让你既知其然也知其所以然。
本书锁定数据引擎的基础运作,例如数据库的设置与数据实际在硬盘的摆放、索引结构、事务与锁定等。书中除了解释设计理念与运作原理外,还辅之以测试验证的方式。因此,本书中蕴含了许多官方文件没有说明的技巧,如查询特定的动态管理视图,执行各种 DBCC 指令,如 DBCC IND、DBCC PAGE等各种跟踪标记等。藉以解释 SQL Server 如何使用 CPU、内存、硬盘与网络等硬件资源,数据表、索引页、事务记录的结构,数据在新增、修改、删除的过程中对实体存放的影响,事务与锁定的运作原理等。
由于 SQL Server 2005 提供了非常多的服务,如 Database Services、Analysis Services、Reporting Services、Notification Services、Integration Services 等,让SQL Server 像个品牌,如同Office 一样,它涵盖了非常多单一的产品。再加上诸多版本,如 Enterprise、Standard、Workgroup、Developer、Express等,还有 32 或 64 位的差异,让安装 SQL Server 变得复杂。一般的新用户恐怕连需要安装哪些服务、各安装步骤的意义及它们对其后系统执行时的影响都一知半解。本书的第1章从安装与升级开始谈起,可见得 SQL Server 2005 的安装都变得有学问了
SQL Server 的数据库服务由多个组件所组成,可大致分为协议访问层、关系引擎(Relational Engine,一般也称为查询处理器 Query Processor)、存储引擎、SQL 核心等部分。本书的第2章先概略介绍这些组件的定位,好让读者知道本书所讨论的重点——存储引擎在整体 SQL Server 数据库服务中所占的位置。
SQL Server 服务器实例和数据库皆提供了相当多的设置,但由于默认值已经符合大多数的使用情境,因此 SQL Server DBA们大都不会深究这些设置。但随着使用人数增多,数据量增大,安全需求提高,这些设置就变得非常重要。本书的第3章和第4章详细解说了这些设置。另外,如何抢救受损的数据库,如何有效使用 tempdb 系统数据库,以及SQL Server 2005 所新增的 Database Snapshot、Schema 等功能也是重点。
为维护数据更新时的完整性,SQL S
Kalen Delaney,她还是微软出版社inside SQL Sever丛书的编辑。她从1987年开始便一直从事SQL Server相关的工作,1995年被评为MVP(微软最有价值专家》。她同时也是Solid Quality Learning的首席顾问和创始人。除此之外,她还是SQL Server Magazine的优秀编辑和专栏作家,她还写作了大量的SQL Server类书籍,包括著名的Inside Microsoft SQL Server2000。
前言
Foreword
这是一部开创性的著作。它对SQL Server数据库引擎的体系结构进行了描述。Kalen Delaney的上一本描述SQL Server 2000的书一直在我的办公桌上,同样被大多数SQL Server的专家们所使用。无论什么时候,当你需要简明描述某件事情是如何工作的或者系统某个方面的设计原理时,都可以参考这本书。确实,大多数SQL Server的设计者和开发者都使用Kalen的书作为参考。所以Kalen一直被我们的一个问题所纠缠:“我们什么时候能够看到一本SQL Server 2005的书出版?”
刚刚读完校样,我终于明白这本书为什么花了那么长时间。它不是上一本书的修订,许多地方都已经改变,并且Kalen拥有如此多的新专题去写一本全新的书。她和设计师们密切联系以理解新的设计,然后再把这些设计以她那简明准确的风格描述出来。这个结果值得等待。这本书内容丰富广博,我从内部观察SQL Server 2005的开发,有时还参与到设计的讨论中去。尽管如此,我还是不能理解这么大的一个体系中的许多内容。在读这个校样的过程中,我学到了许多东西。我将在最近几年的时间里重读这些章节来加深我的理解。
这本书解释系统是怎样工作的,并且让你对设计者的意图有一个深刻的理解——例如深入探讨页面格式、解释分配策略、临时表和表变量的不同、快照隔离级别是如何工作的、恢复选项、目录视图、隔离级别及其实现等等。这些描述深刻、简明,而且容易接受和便于理解。一直以来,这本书在应用程序设计、数据库设计、物理数据布局和性能调校方面都给出了明智的建议。
从宏观来看,SQL Server联机丛书描述存在些什么;许多书描述怎样使用那些存在的特性;这本书描述了数据库引擎特性背后的设计原理,以及它们是怎样工作的。在我们理解这些原理和机制后,就可以经常推断出如何工作会工作得很好,以及如何工作将会出现问题。所以我诚恳地将这本书推荐给那些需要涉及SQL Server 2005系统的设计、实现或处理的人们。
Jim Gray
Technical Fellow,Microsoft Research
1999ACM 图灵奖获得者
无封面