推荐序
有信息界诺贝尔奖美誉的图灵奖(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 Server 通过放在硬盘上的事务记录(transaction log)先行记载变更,再批次更新到数据文件中。但又为了执行效率与稳定,必须设计一系列精细的运作。而管理者需要熟悉这些运作,以提供足够的硬盘空间,并设计数据库备份的策略。本书第5章探讨了事务记录的运作方式,并剖析了备份还原的设计。
数据表是实际存放数据的地方,也就是一切访问的核心。如何有效地切割数据字段,精确地使用数据格式,设置各种维护数据正确性的条件约束(Constraint)等都是数据库管理员和程序设计人员所需要谨慎考虑的。本书第6章详细解释了系统数据表、系统视图与元数据、数据实际在硬盘上的摆放方式、各种数据类型对储存的影响及修改既有的数据表设计。
索引是有效使用数据库引擎最重要的议题之一,但建立与维护索引并不是一件容易的事。索引建少了,查询效率不好;建多了,将影响新增、修改、删除等操作。什么字段该建,是否要对该字段、视图建索引?建立索引将耗掉多少硬盘资源等都是数据库管理员所必备的知识。本书第7章占据了全书最大的篇幅,详细解释了索引的组织结构、聚集(Clustered)和非聚集(Nonclustered)索引的差异、数据分割(Partition)、SQL Server 创建和维护索引的方式。管理员应注意的数据不连续与索引重整等议题。
当多人或多个批处理同时访问相同范围的数据时,事务与锁定就变得很重要。SQL Server 2005 在此版加入了“记录版本(row versioning)”功能,本书作者称为“乐观并行”(Optimistic concurrency),而称呼经由资源锁定的并行处理为“悲观并行”(Pessimistic concurrency)。SQL Server 2000以前的版本仅支持悲观并行。“记录版本”保留记录最后完成事务的值,供用户查询,让查询的工作不影响修改的工作,反之亦然。而不像以往通过资源锁定的方式,在默认的事务级别下,正在读的记录不能改,正在改的记录不能读。而不管是哪一种并行处理,本书第8章都提供了深入的解释,这是多人同时访问时,性能好坏的关键因素之一。
本书不是入门书,不会一步步引导你如何操作。若你尚不了解 SQL Server,玩得不深,学习本书可能就显得沉重了些。而就算你是专业的 SQL Server 管理师,我相信本书依然是蛮难啃的。因为作者解释的大都是 SQL Server 底层的运作原理,少有操作讲解。为了解释,在书中提供像字典似的列表,并辅之以示意图。读起来枯燥无味,但面临问题时,是深入探究的起点。
虽然章节间没有必然关系,但整本书的顺序还是从基础到高级,因此从第1章看起是比较好的。快速浏览过各章节的内容后,在实际工作时,碰到需要深入研究的问题,再回来温习书中所解释的原理。对于读不懂的章节不要沮丧,大部分的人应该都跟你一样,待更有经验且有空时,重新读过,相信会有不同的收获。
若你已经是 SQL Server 2000 的高手,这本书依然适用。我建议你浏览与精读并用,遇到熟知的部分快速翻阅,但读到 2005 新增的部分,就需要手脑并用。既详读文章,又在 SQL Server 2005 上操作一遍,确认你真的读通了。此刻,你已再上层楼。
胡百敬
2007.6.25于台湾
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||