`
happmaoo
  • 浏览: 4428640 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

书评 -- Inside Microsoft SQL Server 2005 : The Storage Engine

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

SQL Server 最重要的著作

若论微软 SQL Server 最重要著作,大概非 Inside SQL Server 系列丛书莫属了,从 SQL Server 6.5 以来,一直常驻在专业 SQL Server DBA 案头的,就是对应各版本的这本书。这不是笔者的妄加赞誉,而是素有信息界诺贝尔奖称呼的图灵奖(Turing Award)得主 Jim Gray 在该书的序言所说的。

笔者本身也以读过该书,代表进入了该版本的世界(例如要熟悉 SQL Server 2000,先读 Inside SQL Server 2000),以此为深入了解 SQL Server 的指标。而值此年终之际,稍有空闲时日,能专心拜读此书实是精通 SQL Server 的最佳方式J

由于 SQL Server 2005 大幅改版,大量地新增功能,让以往出书速度还蛮快的 Inside SQL Server 系列;这次叫大家从 SQL Server 2005 上市后等了一年。也由于功能繁多,原本极为厚重的 Inside SQL Server 再也无法以单行本出书,而改为四本合集的系列丛书[1]。在此介绍其中的一本「Inside Microsoft SQL Server 2005 : The Storage Engine」,执笔者为先前 Inside SQL Server 各版本的作者 Kalen Delaney,在此次 Inside 系列讨论 SQL Server 2005 的四本书中,她改任系列编辑(Series Editor),并于本书担任作者。

一翻开书籍前页,看到 Kalen Delaney 的致谢,立即对本书的严谨要求与参与人力叹为观止。大概很少书是原厂产品团队派一群人伺候,提供技术咨询还要兼审稿,外加微软出版社的编辑审稿,并有作者所在公司同事的襄助。或许,讨论 SQL Server 这类大型产品的书籍还真需要人脉广,经验足才能撰写[2]

笔者长年在各企业间解决 SQL Server 的问题,例如功能不会用、效能不佳、不稳、不安全等,深觉最主要的原因是用户对产品的了解不够。尤其一般使用者存有误解,以为 SQL Server 不需要专业的学习与管理,像 Office 等产品,随意架设使用。若执行起来效能不佳,便认定产品本身的能力不足。其实不然,SQL Server 在台湾,乃至于世界各地都已经进入企业的关键系统,数以兆(tera)计的数据量比比皆是。而我们所欠缺的是深入的知识与经验,以发挥 SQL Server 所提供的各种功能。此书便是钻研 SQL Server 设计原理的最佳管道。

数据库引擎之堂奥

相信久用数据库的管理与开发人员大都熟悉数据库、数据表或索引的建置,交易的管理,但 SQL Server 数据库储存引擎(Storage Engine)实际如何完成你的要求,却讳莫如深。这本书将让你知其然也知其所以然。

书中除了解释设计理念与运作原理外,还辅之以测试验证的方式。因此本书蕴含了许多官方文件没有说明的技巧,如查询特定的动态管理检视、执行各种 DBCC 指令,如 DBCC INDDBCC PAGE、各种追踪旗标等。藉以解释 SQL Server 如何使用 CPU、内存、硬盘与网络等硬件资源,数据表、索引页、交易纪录的结构,数据在新增、修改、删除的过程中,对实体存放的影响,交易与锁定的运作原理等等。

由于分成了四册,由 Kalen Delaney主写的本书其章节不多,仅有八章。锁定在描述数据引擎的基础运作,例如数据库的设定与数据实际在硬盘的摆放,索引结构,交易与锁定等。

由于 SQL Server 2005 提供了非常多的服务,如 Database ServicesAnalysis ServicesReporting ServicesNotification ServicesIntegration Services 等,让笔者觉得 SQL Server 像一个品牌了,有如 Office 一样,其下涵盖了非常多个别的产品。再加上一堆的版本,如 EnterpriseEvaluationStandardWorkgroupDeveloperExpress[3],还有 32 64 位的差异,让安装 SQL Server 变得复杂。一般新入手的使用者恐怕连需要安装哪些服务,各安装步骤的意义,对其后系统执行时的影响都一知半解。本书的第一章从安装与升级开始谈起,可见得 SQL Server 2005 的安装都变得有学问了J

SQL Server 的数据库服务由多个组件所组成,可大分为协定存取层、关联引擎(Relational Engine,一般也称为查询处理器 Query Processor)、储存引擎、SQL 核心等部份。本书的第二章先概略介绍这些组件的定位,好让读者知道本书所讨论的重点:储存引擎,在整体 SQL Server 数据库服务中所占的位置。

SQL Server 服务器实例和数据库皆提供了相当多的设定,但由于预设的设定已经符合大多数的使用情境,因此 SQL Server 管理师们大都不会深究这些设定。但随着使用人数增多,数据量增大,安全需求提高,这些设定就变得重要。本书的第三章和第四章详细解说了这些设定。另外,SQL Server 2005 所新增的 Database SnapshotSchema 等功能也是本章的重点。

为维护数据更新时的完整性,SQL Server 透过放在硬盘上的交易纪录(transaction log)先行记载变更,再批次更新到数据文件中。但又为了执行效率与稳定,必须设计一系列精细的运作。而管理者需要熟悉这些运作,以提供足够的硬盘空间,并设计数据库备份的策略。本书第五章探讨了交易纪录的运作方式,连带剖析备份还原的设计。

数据表是实际存放数据的地方,也就是一切存取的核心。如何有效地切割数据字段,精确地使用数据格式,设定各种维护数据正确性的条件约束(Constraint)…等等,都是数据库管理师和程序设计人员所需要谨慎考虑的。本书第六章详细解释了数据实际在硬盘上的摆放方式,各种数据型态对储存的影响,以及修改既有的数据表设计。

索引是有效使用数据库引擎最重要的议题之一,但建立与维护索引并不是容易的事,索引建少了,查询效率不好,建多了,危害新增、修改、删除。什么字段该建,是否要对计算字段、检视建索引?建立索引将耗掉多少硬盘资源等,都是数据库管理师所必备的知识。本书第七章占据了全书最大的篇幅,详细解释了索引的组织结构,丛集(Clustered)和非丛集(Nonclustered)索引的差异、数据切割(Partition)SQL Server 建置和维护索引的方式,管理者应注意的数据不连续与索引重整等议题。

当多人或多个批作业同时存取相同范围的数据时,交易与锁定的管理就变得很重要。SQL Server 2005 在此版加入了「纪录版本(row versioning)」功能,本书作者称为乐观并行(Optimistic concurrency),而称呼经由资源锁定的并行处理为悲观并行(Pessimistic concurrency)SQL Server 2000以前的版本仅支持悲观并行。「纪录版本」保留纪录最后完成交易的值,供用户查询,让查询的工作不影响修改的工作,反之亦然。而不像以往透过资源锁定的方式,在默认的交易层级下,正在读的纪录不能改,正在改的纪录不能读。而不管是哪一种并行处理,本书第八章都提供了深入的解释,这是多人同时存取时,效能好坏的关键因素之一。

阅读建议

本书不是入门书,不会一步步导引你操作。若你尚不了解 SQL Server,玩得不深,本书可能就沉重了些。而就算你是专业的 SQL Server 管理师,我相信本书依然是蛮难啃的。因为作者解释的大都是 SQL Server 底层的运作原理,少有操作讲解。为了解释,在书中提供像字典似的列表,并辅之以示意图。读起来枯燥无味,但面临问题时,是深入探究的起点。

虽然章节间没有必然关系,但整本书所设计的顺序还是从基础到衍生,因此从第一章看起是比较好的。快速浏览过各章节的内容后,在实际工作时,碰到需要深入研究的问题,再回来温习书中所解释的原理。对于读不懂的章节不要沮丧,大部分的人应该都跟你一样,待更有经验且有空时,重新读过,相信会有不同的收获。

若你已经是 SQL Server 2000 的高手,这本书依然适用,但可能会缺乏耐心逐字阅读,因为部分内容是与 2000 重迭的。仍劝你浏览与精读并用,遇到熟知的部分快速翻阅,但读到 2005 新增的部份,就需要手脑并用了,既详读文章,且在 SQL Server 2005 上操作一遍,以确认真的读通了。

相关阅读

除了本书外,Inside Microsoft SQL Server 2005 系列丛书中,当下买得到的尚有

l Inside Microsoft SQL Server 2005 : T-SQL Querying。作者:Itzik Ben-GanLubor Kollar Dejan Sarka。微软出版社出版。

l Inside Microsoft SQL Server 2005 : T-SQL Programming。作者Itzik Ben-GanDejan SarkaRoger Wolter微软出版社出版。

本书的相关网址http://www.insidesqlserver.com/及其系列书籍的相关网址http://www.sql.co.il/books/insidetsql2005/。若你不欲购买本书,或可在该网站逛逛。


[1] Inside SQL Server 2005 系列的另外两本书名,笔者列在文章的结尾。而 Inside Microsoft SQL Server 2005: Query Tuning and Optimization 这一本似乎还没上市。

[2] 虽提供帮助的人数众多,但本书依然有着许多勘误,Kalen 有详列在书籍的网站上。可见得要撰写一本无误的技术书籍还真困难。

[3] 此为书中所列的版本,在微软网站上还可以看到 Mobile Compact 等其他版本。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1449976


分享到:
评论

相关推荐

    Inside Microsoft SQL Server 2005 The Storage Engine.rar

    《Inside Microsoft SQL Server 2005 The Storage Engine》是一本深入探讨Microsoft SQL Server 2005存储引擎的专业书籍。这本书主要针对SQL Server数据库管理、开发和优化的专业人士,旨在帮助读者理解数据库内部的...

    Microsoft Press - Inside Microsoft SQL Server 2005 The Storage Engine (Oct 2006).chm

    《深入Microsoft SQL Server 2005之存储引擎》 英文chm

    Inside.Microsoft.SQL.Server.2005.The.Storage.Engine

    《Microsoft SQl Server 2005技术内幕:存储引擎》是Inside Microsoft SQL Server 2000的作者Kalen Delaney的又一经典著作,是Inside Microsoft SQL Server 2005系列四本著作中的一本。《Microsoft SQl Server 2005...

    Inside Microsoft SQL Server 2005

    2. **Inside.Microsoft.SQL.Server.2005.The.StorageEngine.chm**:这部分内容主要探讨SQL Server 2005的存储引擎,这是数据库系统的核心组件,负责数据的物理存储和访问。书中可能会详细讲解表和索引的结构,如堆表...

    Inside Microsoft SQL Server 2008

    《Inside Microsoft SQL Server 2008》是一本专门针对高级T-SQL查询、查询优化及编程的技术书籍。本书面向具有丰富经验的程序员和数据库管理员(DBA),旨在帮助他们编写并优化在SQL Server 2008环境下的代码。接下来...

    sql server2005 技术内幕 (微软经典 4本全 2个包)

    2.Microsoft.Press.Inside.Microsoft.SQL.Server.2005.The.Storage.Engine.Nov.2006.eBook-BBL.chm 3.Microsoft.Press.Inside.Microsoft.SQL.Server.2005.T-SQL.Programming.Jun.2006.chm 4.Microsoft.Press.Inside....

    SQL Server 2005 技术内幕(4本 chm英文版)

    3. Inside microsoft sql server 2005 the storage engine 这本书专注于SQL Server 2005的存储引擎,它是数据库管理和性能优化的关键部分。内容涉及数据页和索引结构、事务处理、锁机制、备份恢复策略以及存储空间...

    Inside Microsoft SQL Server 2000

    1. The Evolution of Microsoft SQL Server: 1989 to 2000 [加入我的離線書架] . SQL Server: The Early Years . Ron's Story . Kalen's Story . Microsoft SQL Server Ships . Development Roles Evolve . OS...

    en_microsoft_press_e-book_introducing_windows_server_2008_chapter_1_introduction

    - **内部存储引擎**:Inside Microsoft SQLServer2005: The Storage Engine详细解析了SQL Server 2005的存储机制和数据管理原理。 - **T-SQL编程**:Inside Microsoft SQLServer2005: T-SQL Programming介绍了SQL ...

    Microsoft.Press.Inside.Microsoft.SQL.Server.2005.Storage.Engine

    《Microsoft.Press Inside Microsoft SQL Server 2005 Storage Engine》是关于微软SQL Server 2005存储引擎的一部专业书籍,它深入探讨了这个数据库管理系统的核心组件。SQL Server 2005是微软公司推出的一款强大的...

    Inside.Microsoft.SQL.Server.2005Part1

    Inside.Microsoft.SQL.Server.2005系列三本书英文版第一部分,包括Inside.Microsoft.SQL.Server.2005.The.Storage.Engine Inside.Microsoft.SQL.Server.2005.T-SQL.Querying Inside.Microsoft.SQL.Server.2005.T-SQL...

    sqlserver2005技术内幕英文版chm(引擎和优化)

    CHM(引擎与优化)》是一套深入探讨SQL Server 2005核心组件的重要参考资料,由两部分组成:《Microsoft.Press.Inside.Microsoft.SQL.Server.2005.Query.Tuning.and.Optimization.chm》和《The.Storage.Engine.Nov....

    sql server 技术内幕

    压缩包中的两本电子书分别是《Inside Microsoft SQL Server 2005 The Storage Engine》和《Inside Microsoft SQL Server 2005 T-SQL Programming》。这两部分是SQL Server 2005技术体系的重要组成部分。 首先,让...

    Inside.Microsoft.SQL.Server.2005Part2

    Inside.Microsoft.SQL.Server.2005系列三本书英文版第二部分,包括Inside.Microsoft.SQL.Server.2005.The.Storage.Engine Inside.Microsoft.SQL.Server.2005.T-SQL.Querying Inside.Microsoft.SQL.Server.2005...

    Inside.Microsoft.SQL.Server.2005

    Microsoft.Press.Inside.Microsoft.SQL.Server.2005.The.Storage.Engine.chm Microsoft.Press.Inside.Microsoft.SQL.Server.2005.Query.Tuning.and.Optimization.chm Inside.Microsoft.SQL.Server.2005.T-SQL....

    sql server 技术内幕, 相当经典的一个系列的书。

    《Inside SQL Server 2005 技术内幕》这套书,针对SQL Server 2005版本,提供了丰富的实例和实践建议,不仅适合初学者入门,也是经验丰富的DBA和开发者提升技能的重要参考。通过深入理解这些主题,可以有效地管理和...

    微软内部资料-SQL性能优化3

     Analyze the output of blocking scripts and Microsoft® SQL Server™ Profiler to troubleshoot locking and blocking issues.  Formulate hypothesis to resolve locking and blocking issues. ...

Global site tag (gtag.js) - Google Analytics