越接触本质,越不会迷茫-《Microsoft SQL Server企业级平台管理实践》

迄今为止,我写了16年的程序,接触了12年的数据库,最近10年主要研究微软的SQL Server,包括SQL Server各个版本。
2005、2006年时,我还没有加入微软,作为一个ISV,我经常问海蔚问题:
我的某个表,数据量超过50万行了,SQL Server能应付吗?
我用ASP.NET搭建了一个ERP系统,有200人要用,SQL Server能应付吗?
某某数据库能分区,SQL能做到吗?

当时问的得意,问的比较拽。也许做技术的人就是这样(至少我当时是这个德性):不管自己做什么,做哪个方向的,即使不是我最熟悉的东西,只要觉得自己比别人做得好,有了谈资,我就会有自豪感。一种想“秒杀掉”别人的、可笑的自豪感: 我发现某某数据库比SQL Server强大,借此刁难微软资深的SQL Server工程师。他们经常会被我纠结地无语。

自豪感就在这里。

但同时,自豪感的缺失,也恰在这里。

慢慢的与海蔚接触时间长了,我的看法发生了改变,(这不是短暂吸收技术后的反思,而是一种思考方向的转折。)到微软参加工作后,我处理过SQL Server 2005标准版上每个月增加1000万条记录的SQL单表,处理过SQL Server 2000上6亿5千万条的单表,我看到同事处理过SQL Server 2005上14TB的数据库。回想起自己当初那些傲慢的问题,真有些不好意思。

在微软的工作经历,让我认识到:
性能好坏,需要精确的数字。你看过Logical I/O Reads & Writes吗?你看过执行计划吗?你分析过为什么SQL要执行这个Scan,而不是Seek吗?你分析过Disk Queue的影响吗?你看过Pool paged bytes的大小吗?一句话,微软的工程师要看证据,一切要用数字说话。没有数字,瞎猜而已。有了数字,还要综合分析,不能一棍子打死。找到根本原因,谈何容易?
性能调优的门槛不高,但是需要仔细研究。分析性能问题,第一步需要作什么,第二步作什么,第三步作什么?我好久才慢慢有了感觉,虽然比较慢,但是我自己悟出来了。万物万事万法,都是有规则的。窗户纸很薄,捅破了就是新世界;没有捅破之前,所有的总结,都同时是正确的也同时是错误的。
文档太多,无所适从。如果你Bing(必应)“数据库索引优化”,有人会总结出100条教条(我确实见过),但是谁会全部记住?如果不理解Heap table和Clustered Table,如果不了解B-Tree和Seek/Scan,不了解Statistics和Check Point,那些所谓的教条,有何意义?

在海蔚的这本书里面,没有教条。有的只是让你了解本质、触类旁通、一法破万法的、来自微软全球技术中心(GTEC)全体SQL Server工程师的经验汇集,来自于海蔚的积累和升华。对于迷茫的读者而言,这是让你捅破窗户纸,看遍窗含西岭千秋雪的经典之作。
对于有经验的读者而言,如果书中有两三句话让你顿悟,希望你把这份读书人的感动,及时地反馈给海蔚同学。
从文字的角度讲,字字珠玑。从学习的角度讲,我只想说:不存在教条!你越接触本质,越不会迷茫!这也许是众多读者从本书中获得经验的唯一途径。

鞠强

微软企业现场服务部资深工程师 




猜你喜欢

转载自blog.csdn.net/lvjin110/article/details/10360779