
| 出版日期:2002-02-25 总期号:1095 本年期号:12 |
|
将SQL优化到底
艾文
香港灵高科研有限公司 技术总监 杜伟业 曾任职于银行、系统集成软件公司及Sybase(香港)公司,从事不同数据库开发、管理及设计工作。多年来从事SQL优化工具开发,首先提出并实现了外部SQL重写器External SQL Rewriter,ESR理论。 国内软件产业的发展,多数侧重在系统集成类、高劳动力密集的项目上,一些能独立销售的软件大部分都与中文系统有关,财务及管理软件也因过分本地化而缺乏国际市场。因此,要想成为软件大国,我们的软件产品就必须要冲破这困局。我国香港特别行政区的灵高科研有限公司通过多年的研究而开发的SQL转换技术已处于领先地位,具有该核心技术的LECCO SQL Expert产品已经在全球超过25个国家的用户在使用。2001年,灵高又推出了中文版本的LECCO SQL Expert。为此,记者采访了香港灵高科研有限公司技术总监杜伟业先生。 萌发优化SQL念头 1987年,刚从美国完成学业返回香港的杜伟业,所找的第一份工作便是做Oracle数据库的程序员。他发现SQL语法上的变化竟然使SQL在运行速度上能产生极大的差别,在经多次研究之后才知道Oracle和其他数据库在解析每句SQL后都会通过一个内部优化器来找出最好的执行计划,并用以执行所接收的SQL指令。在这过程中,内部SQL优化器的一些先天的缺点导致某些效率低的执行计划被选中,如:内部优化器不能花太多的时间用于搜索最佳的执行计划、输入SQL语句的语法限制了较佳的执行计划被产生、成本估计错误,等等。这种先天的缺陷使得杜伟业经常会产生这样一个念头:为何不把SQL语法的优化过程自动化?在经过了8年的研究之后,杜伟业终于开发出了能够优化SQL语句的核心技术。这种核心技术被运用到LECCO SQL Expert产品之中。 独创“反馈式搜索引擎” 杜伟业在谈到该产品的开发初衷时指出,其设计目的是希望把用户有问题的SQL语句优化重写并给出最优的 SQL语法,用户只要把优化后的SQL复制回去源代码中,便可以加快代码的执行速度。但是,要做出这样的SQL转换重写技术,必须先要开发出一个引擎能自由转换SQL语法,当一句SQL语法输入到该引擎,这引擎能自动产生语义相同但语法不同的SQL语句。这个引擎是基于人工智能专家系统、语言编辑器及智能搜索技术的一个综合技术突破。LECCO SQL Expert的“反馈式搜索引擎”可将输入的SQL语句做递归式重写,一个有问题的SQL语句将被重写,并且每个重写后得到的SQL语句又将一次又一次被重写,直到没有更深层的模式出现为止。这使计算机能模拟人类专家尝试重写SQL语句的过程,不一样的是我们通常只尝试重写源SQL几次便放弃,而计算机却能搜索出成千上万种可能写法。 被更多用户认同 当LECCO SQL Expert for Oracle版本正式问世时,其用户只集中在香港地区。但由于SQL优化技术不太为一般公司关注,且一般技术人员未必知道问题的根源在哪里。他们都将注意力集中在操作系统、数据库参数和硬件升级里。真正能看到问题本质的都是少数大公司里的资深技术人员,加上灵高公司刚刚成立,初期客户都是一些勇敢而开明的技术高手,当然产品能解决他们存在已久的问题也是关键所在。渐渐地,该产品逐渐被从事SQL开发的技术员所接受。 今天,灵高公司的发展已经开始趋向全球化。首先,日本有灵高的分销商也发行了一个日文版的LECCO SQL Expert。其次,灵高在美国、加拿大和英国也设立了分公司以销售这产品,一时间得到了大批客户的支持。与此同时,灵高的创新技术也吸引了不少全球的代理商加入灵高的销售队伍,但奇怪的是销售增长的速度远未有预期的快。在此之前发现这问题在于SQL优化这种技术观念未普及有关,以至于产品只能为一些高技术高要求的公司所接受。所以,在一年多前灵高便尝试在for Oracle LECCO SQL Expert中加入日常的开发工具,并积极提高开发阶段中的SQL质量。一个新模块PL/SQL Programmer帮助开发人员开发和调试数据库对象,如:存储过程、视图、函数、触发器等。这个新增加的模块除了能帮助程序设计人员快速开发数据库对象外,还能在开发过程中保证SQL效率,并把可能低效的SQL语句在开发过程中就予以排除,以确保最终应用的整体效率。 目前,LECCO SQL Expert已经获得了多项国际大奖。其中,美国NBIA(国际商业培育协会)的“科技成就大奖”更是有史以来第一次非美洲公司获得此荣誉。其客户 已涵盖跨国公司、政府部门、大学、公用事业、实验室、金融业、航空公司等不同领域。由于该产品的技术能显著地改善数据库性能,Sybase公司更从2001年10月起OEM灵高的产品作为Sybase数据库的标准SQL优化工具。目前,盈动华建(北京)科技发展有限公司已作为该产品在内地的总代理,以便让更多的内地用户也能用上这个新工具。 LECCO SQL Expert研发历程 1998年8月,LECCO SQL Expert for Oracle正式推出。 1999年8月,LECCO SQL Expert for Sybase正式推出。 2000年4月,LECCO SQL Expert for SQL Server正式推出。 2001年9月,LECCO SQL Expert for Oracle中文版正式推出。 2001年11月,Sybase OEM了LECCO SQL Expert for Sybase作为Sybase公司的标准SQL优化工具。 2002年,LECCO SQL Expert for DB2将正式推出。 |
|||||||||||||||||