《SQL语言艺术(PDF格式)》第2章


讲解如何处理并发 
第10章,集中兵力:应付大数据量 
讲解如何应付大数据量 
第11章,精于计谋:挽救响应时间 
分享一些技巧,以挽救设计糟糕的数据库的性能 
第12章,明察秋毫:监控性能 
收尾,解释如何定义和监控性能 
本书约定 
本书使用了如下印刷惯例: 
等宽(Courier) 
表示SQL及编程语言的关键字,或表示table、索引或字段的名称,抑或表示函数、代码及命令 
…………………………………………………………Page 4……………………………………………………………
输出。 
等宽黑体(Courier) 
表示必须由用户逐字键入的命令等文本。此风格仅用于同时包含输入、输出的代码示例。 
等宽斜体(Courier) 
表示这些文本,应该被用户提供的值代替。 
总结:箴言,概括重要的SQL原则。 
注意 
提示、建议、一般性注解。为相关主题提供有用的附加信息。 
代码示例 
本书是为了帮助你完成工作的。总的来说,你可以将本书的代码用于你的程序和文档,但是, 
若要大规模复制代码,则必须联系O"Reilly申请授权。例如:编程当中用了本书的几段代码,无 
需授权;但出售或分发O"Reilly书籍中案例的CD…ROM光盘,需要授权。再如:回答问题时,引 
用了本书或其中的代码示例,无需授权;但在你的产品文档中大量使用本书代码,需要授权。 
O"Reilly公司感谢但不强制归属声明。归属声明通常包括书名、作者、出版商、ISBN。例如“The Art 
of SQLbyStéphane Faroult with PeterRobson。 Copyright (c)2006 O"ReillyMedia; 0…596…00894…5”。 
如果你对代码示例的使用超出了上述范围,请通过 permissions@oreilly。 联系出版商。 
评论与提问 
我们已尽力核验本书所提供的信息,尽管如此,仍不能保证本书完全没有瑕疵,而网络世界的 
变化之快,也使得本书永不过时的保证成为不可能。如果读者发现本书内容上的错误,不管是 
赘字、错字、语意不清,甚至是技术错误,我们都竭诚虚心接受读者指教。如果您有任何问题, 
请按照以下的联系方式与我们联系。 
O"ReillyMedia; Inc。 
1005 Gravenstein Highway North 
Sebastopol; CA 95472 
(800) 998…9938 (in the U。S。 or Canada) 
(707) 829…0515 (international or local) 
(707) 829…0104 (fax) 
致谢 
本书原版用英语写作,英语既不是我的家乡话,又不是我所在国家的语言,所以写这样一本书 
要求极度乐观(回想起来几近疯狂)。幸运的是,Peter Robson不仅为本书贡献了他在SQL和数 
据库设计方面的知识,也贡献了持续的热情来修改我冗长的句子、调整副词位置、斟酌替换词 
汇。Peter Robson和我在好几个大会上都碰过面,我们都是演讲者。 
Jonathan Gennick担任本书编辑,这有点让人受宠若惊,Jonathan Gennick是O"Reilly出版的 
SQL Pocket Guide等畅销名著的作者。Jonathan是个非常尊重作者的编辑。由于他的专业、他 
对细节的关注、他的犀利视角,使本书的质量大大提升。同时,Jonathan也使本书的语言更具“中 
大西洋”风味(Peter和我发现,虽然我们保证按美国英语拼写,但还远远不够)。 
…………………………………………………………Page 5……………………………………………………………
我还要感谢很多人,他们来自三个不同的大陆,阅读了本书全部或部分草稿并坦诚地提出意见。 
他们是:Philippe Bertolino、Rachel Carmichael、Sunil CS、LarryElkins、Tim Gorman、Jean
Paul Martin、Sanjay Mishra、Anthony Molinaro、Tiong Soo Hua。我特别感激Larry,因为本 
书的思想最初来自于我们的E…mail讨论。 
我也要感谢O"Reilly的许多人,他们使本书得以出版。他们是:Marcia Friedman、Rob Romano、 
Jamie Peppard、Mike Kohnke、Ron Bilodeau、Jessamyn Read、Andrew Savikas。感谢Nancy 
Reinhardt卓越的手稿编辑工作。 
特别感谢Yann…Arzel Durelle…Marc慷慨提供第12章用到的图片。感谢Paul McWhorter授权我们 
将他的战争图用于第6章。 
最后,感谢Roger Manser和Steel Business Briefing的职员,他们为Peter和我提供了位于伦敦 
的办公室(还有大量咖啡)。感谢Qian Lena (Ashley)提供了本书开始引用的《孙子兵法》的中 
文原文。 
作者介绍 
Stéphane Faroult从1983年开始接触关系数据库。Oracle法国成立早期他即加入(此前是短暂的 
IBM经历和渥太华大学任教生涯),并在不久之后对性能和调优产生了兴趣。1988年他离开了 
Oracle,此后一年间,他进行调整,并研究过运筹学。之后,他重操旧业,一直从事数据库咨 
询工作,并于1998年创办了RoughSea公司(http:// roughsea。)。 
Stéphane Faroult出版了FortranStructuréet Méthodes Numériques一书(法语,Dunod出版社,1986; 
与Didier Simon合作),并在Oracle Scene和Select(分别为英国和北美Oracle用户组杂志)以及 
Oracle杂志在线版上发表了许多文章。他还是美国、英国、挪威等众多用户组大会的演讲者。 
PeterRobson毕业于达拉谟大学地质专业(1968年),然后在爱丁堡大学任教,并于1975年获得 
地质学研究型硕士学位。在希腊度过了一段地质学家生涯之后,他开始在纽卡斯尔大学专攻地 
质和医学数据库。 
他使用数据库始于1977年,1981年开始使用关系数据库,1985年开始使用Oracle,这期间担任 
过开发工程师、数据架构师、数据库管理员等角色。1980年,Peter参加了英国地质普查,负责 
指导使用关系数据库管理系统。他擅长SQL系统,以及从组织级到部门级的数据建模。Peter多 
次出席英国、欧洲、北美的Oracle数据库大会,在许多数据库专业杂志上发表过文章。他现任 
英国Oracle用户组委员会主任,可通过peter。robson@justsql。联系他。 
查询的识别 
…………………………………………………………Page 6……………………………………………………………
有经验的朋友都知道,把关键系统从开发环境切换到生产环境是一场战役,一场甚嚣尘上的战 
役。通常,在“攻击发起日(D…Day)”的前几周,性能测试会显示新系统达不到预期要求。于是, 
找专家,调优SQL语句,召集数据库管理员和系统管理员不断开会讨论对策。最后,性能总算 
与以前的系统大致相当了(尽管新系统用的是价格翻倍的硬件)。 
人们常常使用战术,而忽略了战略。战略要求从大局上把握整个架构与设计。和战争一样,战 
略的基本原则并不多,且经常被忽视。架构错误的代价非常高,SQL 程序员必须准备充分,明 
确目标,了解如何实现目标。在本章中,我们讨论编写高效访问数据库的程序需要实现哪些关 
键目标。 
查询的识别 
Query Identification 
QQuueerryy IIddeennttiiffiiccaattiioonn 
数个世纪以来,将军通过辨别军装颜色和旗帜等来判断各部队的位置,以此检查激战中部队行 
进情况。同样,当一些进程消耗了过多的 CPU 资源时,通常也可以确定是由哪些正被执行的 
SQL 语句造成的。但是,要确定是应用的哪部分提交了这些SQL语句却困难得多,特别是复杂 
的大型系统包含动态建立的查询的时候。尽管许多产品提供良好的监控工具,但要确定一小段 
SQL语句与整个系统的关系,有时却非常困难。因此,要养成为程序和关键模块加注释的习惯, 
在SQL中插入注释有助于辨别查询在程序中的位置。例如: 
/* CUSTOMER REGISTRATION */ select blah 。。。 
这些注释在查错时非常有用。另外,注释也有助于判断单独应用对服务器造成的负载有多大; 
例如我们希望本地应用承担更多工作,需要判断当前硬件是否能承受突发高负载,这时注释特 
小说推荐
返回首页返回目录