数据库优化技术分析与探讨.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文档。上传文档
查看更多
数据库优化技术分析与探讨

数据库优化技术分析与探讨   摘要:从范式优化、索引优化、及查询优化探讨数据库优化设计的方法。在逻辑设计阶段,根据范式优化的要求设计数据库逻辑结构,权衡利弊选出折衷的方案;在数据库物理设计阶段,根据索引优化中的要求在有关属性或属性的组合上建立索引,以优化数据库物理结构;在数据库查询阶段,优化数据查询语句,提高SQL语句的执行效率。   关键词: 数据库;范式优化;索引;查询优化   中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)12-2755-02   随着数据库技术的发展,人们越来越依赖于计算机化的业务数据。但由于传统的基于文件的数据存储和检索方法不灵活且难于管理,因而数据库优化设计成为人们关注的题。如何有效地组织和处理大型数据库的海量数据,使得人们能方便、准确、快捷地完成数据的存取操作,成为对数据库的建设及使用需要解决的问题。   数据库的数据存取主要有四个不同的调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是DBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。   所以,数据库的开发过程中,程序员能够在数据库设计阶段,能够根据数据库实际使用需要,采用适当的范式优化对基本表进行合理的设计和调整,同时在数据库应用程序开发时,注重提高查询语句的执行效率,将会在很大程度提高数据库性能。   1 数据库范式优化   在数据库开发过程中,需要利用范式对基本表进行规范化。一般情况下,基本表的设计要求达到第三范式,第三范式的特征是在消除函数依赖的基础上消除传递依赖,从而使非主键的其他属性只依赖于主键属性。第三范式的使用消除了由于数据冗余带来的插入、更新和删除操作产生的不可预期的副作用,同时保证了良好的的参照完整限制和实体完整性限制,使得数据容易维护。   将规范化作为数据库开发过程的完善工具时,首先利用E-R图建立概念数据模型,并使用转换规则生成基本表,然后利用范式分析各个表,最终保证基本表及其字段之间的关系满足第三范式。基于第三范式设计的数据库表虽然有其优越性,但是,满足第三范式的数据库设计,往往不一定是最好的设计。   作为一项设计标准,第三范式“消除冗余以避免更改异常”偏重于数据库的更改功能。在数据库设计中,当分解表来符合范式要求时,表的数量会增加,虽然数据库越容易更改,但查询的难度会随之增加。如果数据库在实际应用中主要用于查询,那么过多追求避免更改异常不见得是一个恰到好处的设计目标。   另外,加入更多的表容易导致过程从多表获取数据时引发大量的连接操作,占用额外的磁盘I/O操作和处理逻辑,因此减慢了系统速度。所以,在许多过程要频繁访问一个表、子集数据访问、重复计算和冗余数据的情况下,需要对基本表进行结构优化和性能调整。   1.1 利用分割表减小数据量   当一个表包含过大数据量,而主要过程反复访问一个表中的部分行或者部分列而不需要访问整个表时,可以水平分割表或者垂直分割表,可以将被频繁访问的列数据单独存为一个子集表。这些操作都是在不用考虑磁盘的开销的情况下,同时分割表也增加了维护数据完整性的代价。   1.2 存储衍生数据   对一些要做大量重复性计算的过程而言,可以考虑增加相应列存储计算结果。如在库存表中每个仓库的库存总量由产品数量相加所得,而库存总量又频繁被查询,则有必要将库存总量作为一个单独列加入到表中。   1.3 增加相关属性字段   规范化规则要求独立存储外键,以表示1:M关联。如果外键表示代码,而用户需要同时得到代码以及相应的名称,则可以将相应列和代码存储在一起,减少一些连接操作。用户如订单报表的输出需要订单号、产品名、订单金额等字段,而订单号和产品名在不同表中,查询时需要对这两个表进行连接查询,为了提高查询速度,可以在订单表中增加产品名字段。   1.4 增加派生列   储存派生数据可以减少表的连接操作,省去检索数据以计算派生数据的麻烦。如订单总量频繁要求被输出,而计算订单总量的两个数据订单数量和产品单价分别在订单表和产品表中,那么可以增加订单总量字段到订单总量表中,从而避免了两次连接操作。   虽然范式的级别越高,关系模式越不会出现冗余和更新异常等不合理情况,但是关系模式的数目在不断的分解过程中将会不可避免的逐渐增加,必然会导致连接操作的增多,而连接操作是一个开销非常大的运算,过多的关系连接必然加重数据库系统的负担,影响系统效率,所以说模式的分解切不可一味追求其规范化程度而忽略了实际的使用方便性,在应用当中我们需要结合实际情况酌情考虑,尽可能使二者达到一个比较均衡的状态。   2 数据库查询优化   查询是数据库系统中使用最频繁

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档