前言
preface
本书及其续篇——《Inside Microsoft SQL Server 2005:T-SQL Programminy》——介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。它们是为那些需要在SQL Server 2000和SQL Server 2005中编写和优化代码的开发人员和DBA而设计的。为简单起见,我把这两本书简称为《Inside T-SQL Programming》和《Inside T-SQL Querying》。
这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。你会从中学到大量精湛的技巧,这些技巧会充实你的工具箱和编码技能,可以让你顺利地开发出高效的解决方案。
这两本书将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。
书中还讲述了其他几种争议较多的构造(construct)——如临时表、动态执行、XML和 .NET集成——它们在具有强大功能的同时,也具有极大的风险。使用这些功能需要有非常丰富的编程经验。这两本书将教你如何明智、高效并安全地使用它们。
本系列书的第一卷《Inside T-SQL Querying》,介绍基于集合的查询,我建议你先阅读这本书。第二卷《Inside T-SQL Programming》侧重于过程编程,它假设你阅读过第一本书或具有足够的查询知识。
《Inside T-SQL Querying》的前三章介绍逻辑查询处理(logical query processing)和物理查询处理(physical query processing)的基础知识,这是学习其他章节所必需的。
第1章介绍逻辑查询处理。这一章详细描述了查询处理中的各个逻辑阶段,SQL查询所独有的特征,为适应面向集合的关系编程环境而需要转变的特殊观念。
第2章讲述物理查询处理。它详细描述了SQL Server引擎处理查询的方法,比较了物理查询处理和逻辑查询处理。这一章由Lubor Kollar执笔。Lubor是SQL Server 2005的group program manager,他的团队负责关系引擎的底层部分——从查询编译优化到查询执行、事务的一致性、备份/恢复,以及高可靠性。表和索引分区,数据库镜像,数据库快照,快照隔离,递归查询和其他的T-SQL查询实现,数据库引擎优化顾问,创建和维护联机索引等这些SQL Server 2005中的主要特性都有他的团队的参与。世界上很少有人能像Lubor那样了解查询优化。我很荣幸能够让优化器的设计者之一来亲自解释它。
第3章阐述查询优化的方法论,这是我们在Solid Quality Learning总结出来的,而且已经应用到产品系统中。这一章还介绍了如何使用索引及分析执行计划。本章所提供的背景知识对于理解后面章节中关于使用索引和分析执行的实践内容非常重要。它们是查询和查询优化的重要方面。
后面的章节深入探讨高级查询和查询优化,代码的逻辑部分和物理部分相互交叉。这些章节分别是:“子查询(Subquery)、表表达式(Table Expression)和排名函数(Ranking Functions)”、“联接和集合操作”、“聚集(Aggregating)和旋转(Pivoting)数据”(包含一节与CLR用户定义聚集函数有关的内容,作者为Dejan Sarka)、“TOP和APPLY”、“数据修改”和“图(Graph)、树(Tree)、层次结构(Hierarchy)和递归查询(Recursive Queries)”。
附录A提供了一些纯粹的逻辑难题。你可以通过练习逻辑难题以提高你的逻辑技能。SQL查询的本质就是处理逻辑。我认为练习纯逻辑对于提高用查询解决问题的能力是非常重要的。这些题目非常有意思,也非常具有挑战性,你可以和全家一起练习。它们是我在SQL Server Magazine的T-SQL专栏中发表的题目汇总。感谢SQL Server杂志允许我和本书的读者分享这些题目。
本系列的第二卷《Inside T-SQL Programming》介绍编程相关的T-SQL构造,以及XML处理和 .NET集成。所包含的主题有:数据类型相关的问题,包括XML和CLR用户定义类型(UDT)、临时表、游标、动态执行、视图;用户定义函数包括CLR UDF;存储过程包括CLR存储过程;触发器包括DDL触发器和CLR触发器;事务包括新的快照隔离级别、错误处理,以及Service Broker。
书中讲述XML和 .NET集成的章节(“用户定义类型”、“用户定义函数”、“存储过程”和“触发器”)由Dejan Sarka执笔。Dejan是一位SQL Server专家,他非常了解关系模型。他认为如果使用得当,这些新的构造可以适应关系模型,他在这方面的观点非常引人注目。让熟练掌握关系模型的专家来介绍该产品中这些倍受争议的领域,我认为这非常重要。所有的CLR代码示例都提供了C#和Visual Basic .NET两个版本。
最后一章介绍Service Broker,这一章是由Roger Wolter执笔。Roger在SQL Server团队中负责Service Broker的program manager。同样,没有比让组件的设计者亲自解释该组件更合适的了。
最后, Steve Kass是本书的技术编辑。Steve是个非常精明的人。他是SQL Server MVP,他在杜尔大学(Drew University)教授数学。他精通SQL Server和逻辑学,对本书做出了无法估量的贡献。
对你,本书的读者,我想说的是,SQL对我来说是科学、逻辑和艺术。我已经为这两本书准备了很久,在这两本书中倾注了我所有的激情和多年的经验。但愿它们能让你觉得既实用又非常有趣,你会和我一样发现SQL是灵感之源。如果你有任何的意见或建议,我非常乐意聆听。你可以通过这个网站与我取得联系:http://www.insidetsql.com。
真诚的,Itzik
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · 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).. · 反垃圾邮件技术应用 |
|||