InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

书评:编写高性能SQL代码的艺术

作者 Jonathan Allen 译者 张龙 发布于 2009年3月23日

领域
运维 & 基础架构,
架构 & 设计,
语言 & 开发
主题
SQL Server ,
.NET ,
数据访问 ,
关系型数据库 ,
微软 ,
数据库 ,
编程 ,
性能和可伸缩性 ,
评论

查看SQL Server查询的执行计划是一回事,而明白它们的含义却是另一回事。Grant Fritchey的书:编写高性能SQL代码的艺术的第一部分就详述了SQL Server的执行计划,这对你会很有帮助。

本书首先概览了执行计划。大多数同类书籍的第一章尽是些没用的东西,而本书则不然,它一开始就介绍了何时会重新编译执行计划、为何一些查询有两个执行计划等等。

第二章非常有价值。你会发现hash map join与nested loop join的区别,同时也可以判定出哪个更好一些。但这都不是完全绝对的:某些操作对于大表表现的很棒,然而对于小表就不那么让人满意了,反之亦然。与此同时,本章还就为何某些操作可能会引起查询或表设计上的一些问题给出了很多建议。

第三章谈到了如何读取基于文本和XML的执行计划。如果不喜欢一上来就看到这么多的XML,你可以跳过这章。接下来的一章解释了执行计划,这次谈到了更复杂的一些内容,如Common Table Expressions。

对query hint使用不当可能会导致很严重的后果,但它们也可以解决优化器的bug所导致的性能问题。因此我推荐每个人都来读一下Fritchey的书中关于query hint这一章。尽管大多数开发者不会使用到它们,但了解一下终究是有好处的。

本书的其他部分涵盖了一些高级主题,如游标、XML查询、parallelism及计划指南(plan guides)。计划指南是个好东西,凭借它你可以在存储过程(你可以修改存储过程,也可以ad-hock应用创建的查询)中使用query hint。

可以在这里免费下载编写高性能SQL代码的艺术这本书,也可以从SQL Server Central上购买。Red Gate还在大会上给出了该书的打印版。

查看英文原文:Review: The Art of High Performance SQL Code

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。