浅谈FireBird数据库SQL语句的优化.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈FireBird数据库SQL语句的优化.doc

浅谈FireBird数据库SQL语句的优化   摘要:数据库是计算机信息管理系统的核心部分,必不可少的。该文主要分析了基于FireBird数据库的SQL语句优化技术,通过实例进行优化技术前后性能指标的分析与总结,阐述了SQL语句的优化对数据库系统性能的改善和提升起到了重要的作用。   关键词:FireBird;数据库;SQL语句;优化   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)16-0018-02   1 数据库优化背景知识   数据库最常见的优化手段是对硬件的升级,据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来只占数据库系统性能提升的40%左右,其余的60%系统性能提升来自对应用程序的优化。应用程序的优化分为源代码和SQL语句优化。由于涉及对程序逻辑的改变,源代码的优化在时间成本和风险上代价很高,而对数据库性能提升收效有限。SQL语句在执行中消耗了70%~90%的数据库资源,对SQL语句进行优化不会影响程序逻辑,而对于SQL语句的优化成本较低、收益却比较高,所以对SQL语句进行优化改进,对于提高数据库性能和效率是非常有必要的。   2 分析SQL优化问题   许多程序员认为查询优化与编写的SQL语句关系不大,这是错误的认识,一个好的SQL查询语句往往可以使程序性能提高数十倍,同时减轻数据库服务器的承载压力。实际应用程序开发过程中还是以用户提交的SQL语句作为系统优化的基础,很难设想一个原本糟糕的SQL查询语句经过系统的优化之后会变得高效.查询优化技术在关系数据库系统中有着非常重要的地位,关系数据库系统和非过程化的SQL语言能够取得巨大的成功,关键是得益于查询优化技术的发展。从本质上讲。用户希望查询的运行速度能够尽可能地快,无论是将查询运行的时间从10分钟缩减为1分钟,还是将运行的时间从2秒缩短为1秒钟,最终的目标都是减少运行时间。由于应用程序可能生成非常复杂的SQL语句,查询优化程序必须精心构建、功能强大,以保障良好的执行性能。查询优化程序可转换SQL语句。使复杂的语句转换成为等价的但执行性能更好的SQL语句。   3 SQL语句优化策略   本文以关系数据库系统FireBird为例,结合数据库理论,以实际软件开发过   程中的实例为说明,介绍了SQL语句优化技术在现实系统中的运用。   3.1 索引原理   索引是一个单独的、物理的数据库结构.FireBird数据库以及其他大型的关系式数据库引擎,都具备各式索引功能。   建立索引的优点:   1)大大加快数据的检索速度,提高数据库执行效率。   2)创建唯一性索引,保证数据库表中每一行数据的唯一性;   3)在表与表之间建立关联字段索引,加速表和表之间数据访问连接速度;   4)对频繁进行GROUPBY(分组)或ORDERBY(排序)操作的表结构字段建立索引。   以实际ERP项目开发中服装加工数据为例,一张为服装入库表:fz_rk(批号、服装单号、加工人员)约5000条记录,另一张为服装出库表: fz_ck (批号、服装单号、加工人员)约6000条记录,现要查看相同服装单号的入出库加工人员信息并对服装单号排序,SQL执行语句:   select o.bh,o.xm rk,p.xm ck from fz_rk oleft join fz_ck p on (p.bh=o.bh)order by o.bh,以服装单号字段作为为表结构索引,现将未建索引和建立索引后的数据分析如下:   从表中数据知,在相同情况下执行相同SQL语句查询,索引优化不管是占用CPU内存还是缓存数据读取,性能都有大幅度的提升,执行时间更是呈几何级速度下降,数据库查询效率得到明显的提高。   3.2 把对视图的访问转换为对基本表的访问   视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,利用视图可以大大简化用户的工作。本人在程序开发初期也创建过较多的视图简化工作量,但是从查询优化的角度来看,视图则不利于查询效率的提高。SQL语言是一个描述性的非过程化语言,用户在写SQL语句时,不用知道需要操作的数据具体是如何存放以及按照什么步骤进行处理,查询处理器会自动完成这些工作。但是,查询语句操作的数据库对象除了基本表以外,还可能是视图。如果查询处理器直接对视图进行操作,查询优化器所能生成的执行计划是先执行视图定义,这种处理方式在绝大多数情况下效率极低(大数据量的话效率更低)。因此,在优化查询速度上,应尽量避开使用视图,将对视图的引用转换为对视图所涉及的基本表的引用,从而得到一个功能上完全等价的SQL语句查询,重写后的查询效率性能上肯定比原先创建的视图提高了很多倍。   

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档