当前位置: 主页 > 论文库 > 管理学 > 档案管理 >

数据库管理中SQL查询优化技术的应用

时间:2012-02-14 16:25 来源:www.lunwen163.com 作者:163论文网 点击:
摘要:SQL语句的优化是将性能低下的SQL语句转换成为目的相同的、性能优异的SQL语句,人工智能SQL优化是运用人工智能技术自动对于SQL语句进行重写,从而找到性能最好的等效SQL语句, 关键词: SQL 优化 人工智能
SQL(Structured Query Language)结构化查询语言,是在数据库领域中应用最为广泛的数据库查询语言,最早的SQL标准是于1986年10月由美国ANIS(American National Standards Institute)公布的,随后,ISO(international Standards  Organization)于1987年6月也正是确定它为国家标准,并在此基础上进行补充。到1989年4月,ISO提出了具有完整性特征的SQL,1992年11月又公布了SQL的新标准,从而建立了SQL在数据库中的核心地位。它是一种一体化语言,包括数据的查询、(SELECT)操纵(INSTER UPDATE DELETE)、控制(CRANT REVOTE)、定义(CREATE DROP ALTER)。SQL设计巧妙,语言简单,大众对SQL语言的应用宠爱有加。
第一代的SQL优化工具是执行计划分析工具。这类工具针对输入的SQL语句,从数据库提取执行计划,并解释执行计划中关键字的含义;其次的SQL优化工具只能提供增加索引的建议,它通过对输入的SQL语句的执行计划的分析,来产生是否要增加索引的建议;最后的 SQL优化工具不仅可以分析输入SQL语句的执行计划,还可以输入的SQL语句本身进行语法分析,经过分析后会产生写法上的改进建议和意见。
如果在设计阶段进行数据库性能优化的,收益最大,成本最低。成品阶段如果进行数据库性能优化可以使其的成本最高,收益最小。SQL的优化通常可以通过对硬件、网络、数据库参数、操作系统和应用程序的优化来进行。对硬件的升级是最常见的优化手段,根据统计,对网络、操作系统、硬件、数据库参数进行优化所获得的性能提升,可以使数据库系统性能提升到40%左右,其余的60%系统性能提升来自对应用程序的优化。甚至对应用程序的优化可以得到80%的系统性能的提升。应用程序的优化通常可分为两个方面:源代码和SQL语句。由于涉及到对程序逻辑的改变,源代码的优化在时间成本和风险上代价很高,而对数据库系统性能的提升收效有限。
一、优化原因:SQL语句是对数据库进行操作的惟一途径,对数据库系统的性能起着决定性的作用;SQL语句消耗了70%至90%的数据库资源;独立于程序设计逻辑,对它的进行优化不会影响程序逻辑;SQL语句有不同的写法,在性能上的差异非常大,它易学,但难精通。
最主要的是,DBA或资深程序员通过对SQL语句执行计划的分析,依靠经验,尝试重写SQL语句,对结果和性能进行比较,并且试图找到性能较佳的SQL语句。这种传统上的作法或许无法找出SQL语句的所有可能写法,且依赖于人的经验,非常耗费时间。
二、人工智能的SQL优化应用
人工智能自动SQL优化在90年代末首次出现。随着人工智能技术的发展和在数据库优化领域应用的深入,在20世纪90年代末终于出现了突破性的进展——人工智能自动SQL优化。
目前在商用数据库领域LECCO TechnologyLimited(灵高公司)拥有该技术并提供使用该技术的自动优化产品——LECCO SQL Expert,其支持Oracle、Sybase、MS SQLServer和IBMDB2数据库平台。该产品针对数据库应用的开发和维护阶段提供了几个特别的模块: PL/SQL集成化开发调试环境(IDE)、SQL语法优化器、扫描器、等。SQL语法优化器的核心模块SQL 语法优化器的工作原理为:首先输入一条源SQL语句;其次,利用 “人工智能反馈式搜索引擎”对输入的SQL语句,进行重写,将必须结合检测到的数据库结构和索引进行应用产生N条等效的SQL语句输出;然后,将其产生的N条等效SQL语句”进行重写,它是由送入 “人工智能反馈式搜索引擎来完成的,直到无法产生新的输出或搜索限额满为止;选出具有不同执行计划的SQL语句,对输出的SQL语句进行过滤;最后对得到的SQL语句进行批量测试,从而找出性能最好的SQL语句。
 三、优化模块的特点
 LECCO SQL Expert优化模块的特点主要有以下几点:以人工智能知识库“反馈式搜索引擎”来重写性能优异的SQL语句;自动优化SQL语句;产生相同的结果;找出所有等效的SQL语句及可能的执行计划;可重写SELECT、SELECTIN-TO、UPDATE、INSERT和DELETE语句;先进的SQL语法分析器能处理最复杂的SQL语句;提供微秒级的计时;通过测试运行,为应用程序和数据库自动找到性能最好的SQL语句;提供上下文敏感的执行计划帮助系统和SQL运行状态帮助;提供“边做边学式训练”; 不是猜测或建议,而是SQL重写解决方案。
四、高级SQL语句的应用
LECCO SQL Expert的出现使SQL的优化变得更加简单。它不仅找到所有可能的优化方案,于很短的时间内,节约不少时间,还能够通过实际测试确定最有效的优化方案。如果要与将它以往的数据库优化手段相比,LECCO SQL Expert的出现可以说是将数据库优化技术带到了一个崭新的技术高度。
高级的SQL技术还包括:SQL触发器、游标等。
触发器(Trigger)的实现,不仅能实现完整性规则,而且能保证一些较复杂业务规则的实施。它是一类由事件驱动的特殊过程,一旦由某个用户定义,任何用户对该触发器指定的数据进行增、删或改操作时,系统都将自动激活之,并在核心层对其进行集中的完整性控制。
SQL语句执行的结果可能是若干条数据表的记录,而宿主语言每次只能处理一条数据记录,所以SQL不能一下子就把所有的执行结果都交给宿主语言,需要暂时把它们存放在一个数据缓冲区中,然后被宿主语言一条一条地处理。这个缓冲区就是系统提供给用户的所谓游标。
结语:人工智能自动SQL优化技术是今天的高等技术,可减小数据库成本,可以,提高工作效率,使其利益最大化,随着更多高等技术层出不穷,社会经济也会得到更快发展。
参考文献
[1]胡博.智能控制及其应用[J].芜湖职业技术学院报.2010(12)
[2]王伟 韩富有.数据库技术教程[M].北京邮电大学出版社2010(2)
 [3]宋少忠 赵钟元.数据库技术实践教程[M]. 北京邮电大学出版社2010(2)
[4]李梅娟 陈堂波 刘臣奇. 自动化立体仓库存取设备优化调度方法研究[J].计算机工程与设计.2006(1)
[5]程舒通 陈从富.网站结构优化技术研究进展[J]计算机应用研究2009.(6)