1.微软Webcast《sql server 2000完结篇》。
尽管微软Webcast出了很多关于Sql Server的系列课程,但是最为深入讲解Sql Server的还是这个课程,尽管名字是Sql Server2000,但是由于讲的全是内部机制,所以一点都不过时,绝对是深入学习Sql Server的首选。原理方面从关系引擎,存储引擎,日志与事物机制,调优方面索引、查询、过程调优都做了比较详细的介绍。
2.《Microsoft SQL Server企业级平台管理实践》徐海蔚。作者是微软全球技术支持中心,数据库支持部技术主管,加入微软技术支持中心已经10年。我自己认为,这类面向实战的书比Sql Server的开发者写的书对我们更有价值。就像我们要学习如何把星际玩得更好,我们当然更愿意学习星际比赛的冠军而不是星际的开发者的经验。
本书我觉得可以分为两部分,前9章主要是给DBA看的,第10章后面主要是给开发者看的,但是我作为一个开发者,即使前九章不看,光看9-13章就觉得非常过瘾了。其中对锁和阻塞的讲解非常的深入细致。本来我看完《sql server 2000完结篇》以后,以为数据库的内容几乎都被讲完了,而且目前市面上的书大部分都没有跑出这个课程的范围,而本书却讲了很许多《sql server 2000完结篇》没有涉及的内容,比如一个Select语句会引发几个锁,闩的作用等等。
3.《SQL Server 2008查询性能优化》Grant Fritchey Sajal Dam。这本书最大的特点是覆盖面广,几乎把查询优化涉及到的内容都覆盖了。而且开门见山的列出了13条性能杀手。其实从开发者的角度,对于性能优化的重点知识在于锁和执行计划,作者Grant Fritchey 还有另外一本书《Dissecting SQL Server Execution Plans》是一本专门阐述执行计划的书也值得一看。另外韩国数据库大师李华植的《海量数据库解决方案》几乎就是一本执行计划的专著,对于各种表连接有着详尽的讲解,虽然主要是基于Oracle的,但是基本上是一本查询优化的大全。
4.SQL Server技术内幕系列。这当然是一个久负盛名的系列书,并且在《SQL Server 2000技术内幕》以前,都是由该产品的技术主管Ron Soukup亲自操刀。是SQL Server最权威的书籍,没有之一。《走出软件作坊》的作者也把该书作为他技术的半壁江山。但是为什么放在最后面,是因为即使是我这样喜欢刨根问底的,也被无数的技术细节所淹没。也许有人会说,那是你的项目太小。据我所知,越大的项目确实对数据库知识的要求越高,但是,这时项目会有专门的DBA甚至是微软的顾问,项目小的又确实用不上。从效率最佳的角度来看,这个书就当字典用到再查阅一下比较合适。
总的来说,SQL Server的书比Oracle来说少得多,尤其是DBA实战方面的像《Oracle DBA手记》这样的书还没有,不过对于开发来说,这些书已经很足够了。对于开发来说首先要解决的是死锁与超时,至于说速度慢,实在优化不了,那就换硬件嘛。