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