本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部体系结构,包含了非常全面的编程参考,提供了使用Transact-SQL(T-SQL)的专家级指导,囊括了非常全面的编程参考,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。本书适合专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。
深入理解T-SQL体系结构,充分利用高级T-SQL查询技术。
本书深入介绍了T-SQL的内部体系结构,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。通过本书提供的最佳实践和示例代码,数据库开发人员和管理员完全可以掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。通过本书,你将学习到如何:理解逻辑和物理的查询处理;使用方法论优化查询;在查询中用TOP选项修改数据;用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;通过逻辑难题提高你的逻辑能力并掌握查询问题的核心等。
你将学习到如何:
理解逻辑和物理的查询处理;
使用方法论优化查询;
解决关系分区问题;
使用CTE和排名函数简化及优化解决方案;
用各种技术聚合数据,包括附加属性、旋转、直方图和分组因子;
在查询中用TOP选项修改数据;
用递归逻辑、具体化路径或嵌套集合解决方案查询特殊的数据结构;
通过逻辑难题提高你的逻辑能力并掌握查询问题的核心;
内容简介
本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。本书及其续篇——《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。
书中还讲述了其他几种争议较多的构造(camstruct)——如临时表、动态执行、XML和.NET集成——它们在具有强大功能的同时,也具有极大的风险。
本书适合于需要编写或检查T-SQL代码的有经验的T-SQL程序员和数据库专业人员。读者可从中学到大量精湛的技巧,这些技巧会充实您的工具箱和编码技能,并让您顺利地开发出高效的解决方案。
作者简介
Itzik Ben-Gan是Solid Quality Learning的首席导师和创始人。他从1999年开始便一直是SQL Server方面的Microsoft MVP,在世界各地讲授 T-SQL查询、编程和查询优化相关的课程,并提供相关咨询服务。他在SQL Server Magazine和MSDN上发表了多篇文章,并被邀请在许多专题会议上做过报告,包括TechEd、DevWeek、PASS和SQL Server Connections。
目录
序
前言
致谢
引言
本书的组织
系统要求
安装示例数据库
更新
代码示例
本书支持
第1章 逻辑查询处理
逻辑查询处理中的各个阶段
逻辑查询处理阶段简介
Customers/Orders场景下的示例查询
逻辑查询处理步骤详解
步骤1:执行笛卡尔乘积(交叉联接)
步聚2:应用ON筛选器(联接条件)
步骤3:添加外部行(Outer Row)
步骤4:应用WHERE筛选器
步骤5:分组
步骤6:应用CUBE或ROLLUP选项
步骤7:应用HAVING筛选器
步骤8:处理SELECT列表
步骤9:应用DISTINCT子句
步骤10:应用ORDER BY子句
步骤11:应用TOP选项
SQL Server 2005中新的逻辑处理阶段
表运算符
OVER子句
集合操作
结论
第2章 物理查询处理
查询处理期间的数据流
编译
Algebrizer
优化
使用查询计划
更新计划
结论
致谢
第3章 查询优化
本章用到的示例数据
优化方法论
分析实例级的等待
联系等待和队列
确定方案
细化到数据库/文件级别
细化到进程级别
优化索引/查询
查询优化工具
syscacheobjects
清空缓存
动态管理对象
STATISTICS IO
测量查询的运行时间
分析执行计划
提示(Hint)
……
第4章 子查询、表表达式和排名函数
第5章 联接和集合操作
第6章 聚合和旋转数据
第7章 TOP和ALLPY
第8章 数据修改
第9章 图、树、层次结构和递归查询
附录A 逻辑难题
索引
1