数据库查询优化之我见

来源 :商 | 被引量 : 0次 | 上传用户:chinaoristand
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文重点围绕数据库的查询优化,从设计、管理和使用三方面着手,针对如何缩短大数据量的查询处理时间和提高数据库应用系统效率的问题,提出了相应的优化策略。本文首先分析了规范良好的数据库系统的设计对优化的影响;然后介绍了如何通过数据库的基本管理达到优化的目的;最后分析编写恰当的SQL语句进行优化的通用策略和原则,通过相应的解释加深读者对这些策略和方法的理解。
  关键词:数据库;优化;查询
  一、引言
  由于数据库技术的不断创新和发展,数据库技术被越来越多的应用,而且也不断地开发出新的数据库应用系统和信息管理系统。而在数据库应用系统和信息管理系统的众多功能里面,必不可少的一向功能就是查询,查询功能也是数据库系统和信息管理系统中占最大比例的功能。数据库的查询功能对于整个数据库系统的效率有很大的影响,优化好的查询功能可以有效的提高效率,由此可见查询优化规划的重要性。只有从需求、设计到使用等环节都做好相应的规划和技术改进,才能最大程度的优化整个数据的查询功能。
  二、数据库设计优化
  数据库的设计是否优良从根本上决定了数据库查询效率的好坏,因此要提高数据库的查询效率首先就应该从数据库需求分析阶段入手。
  1.详细的需求分析是优化的基础
  数据库设计是从系统的需求出发,结合软硬件相关要求,设计符合系统需要功能的数据的集合。数据库模式的设计是数据库设计中最基本的环节,可以使用E-R图对数据库模式的设计进行建模。但是,往往需要经历一个反复且周期性的过程才能完善的设计出一个较为优秀的数据库系统。
  2.数据库规范化是优化的关键
  逻辑结构设计在数据库的设计周期中是必须要开展的,在这一设计中,为了达到优化数据库的目的必须规范关系模式。所谓关系规范化就是按统一标准对关系进行优化,从而最大程度上消除关系数据库中的数据冗余,消除添加、删除和修改等操作异常,以提高关系的质量。冗余度大、插入异常和删除异常是在操作不好的关系时经常会遇到的三个问题。在规范化理论中,关系中的各属性被认为是相互依赖和相互制约的,这样一个有严谨结构的整体才能构成。函数依赖、多值依赖和连接依赖三种类型大致就是参照属性间相关的关系而分类的,其中按照函数依赖又可分为部分依赖、完全依赖和传递依赖。根据这三类函数依赖可得到规范化等级,主要有5种,即第1范式(1NF),第2范式(2NF),第3范式(3NF),BC范式(BCNF)和第4范式(4NF),满足这些范式条件的关系模式可在不同程度上避免冗余、插入和更新异常问题。
  三、数据库管理优化
  当我们选定数据库管理软件,完成数据库的实现后,通过建立索引、存储过程等数据库管理手段可以进一步为提高数据库的查询效率打下基础。
  1.合理使用索引
  索引是数据库中重要的数据结构,提高查询的效率是设计索引的根本目的。索引的使用要恰到好处,其使用原则如下:在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。在频繁进行排序或分组的列上建立索引。在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。如果待排序的列有多个,可以在这些列上建立复合索引(compound index)。
  2.使用存储过程
  存储过程是SQL语句和流程控制语句的集合,经编译后存储在数据库中。用户通过指定存储过程名字并给定参数来执行它。如某一操作包含大量的SQL代码或分别被多次执行,那么存储过程的执行速度快很多。因为存储过程是预编译的,只在创建时进行编译,以后每次执行存储过程都不需要重新编译,而一般SQL语句每执行一次就要编译一次,所以使用存储过程可提高数据库的运行效率。另外,存储过程保存在数据库中,比起从客户端发送SQL语句到数据库服务器,使用存储过程节省了网络传输的时间,这一定程度上提高了数据库的执行效率。
  四、SQL语句优化
  通过以上手段固然能有效的提高查询效率,但功能正确而编写不恰当的SQL语句同样能降低数据库的查询效率。以下就如何编写优良的SQL语句做介绍:
  1.在进行查询时,返回的值应该是查询所需要的,即在查询中应该尽量减少对数据库表的访问列数,使查询返回的数据最小。这就意味着在查询时,不能过多的使用通配符,如:select*from table1语句,而应该做到最小化查询范围,要查询几列就选择几列,如:select col1 from table1。
  2.多数情况下,当用户并不需要查询到的所有数据,而只是部分或靠前的数据时,这时我们可以通过SQL语句来限制查询的结果,如:select top 50 col1 from table1。
  3.对于一些特殊的SQL语句,在使用时应正确选择。我们用一组例子来说明,如:EXISTS,NOT EXISTS。语句一:select sum(t1.c1) from t1 where (select count(*)from t2 where t2.c2=t1.c2)>0。语句二:select sum(t1.c1) from t1 where exists(select*from t2 where t2.c2=t1.c1)。两个语句所得到的结果相同,但语句二的效率要远高于语句一,因为语句一在查询中产生了大量的索引扫描。在对数据库查询时,所使用的语句多种多样,但选择恰当的字句能够有效的提高查询效率。
  4. WHERE子句在使用时应该注意以下的问题:在WHERE子句中对字段进行null值判断,如:select id from t1 where name is null,使用in、not in、or、!= 或<>,都会导致索引失效而进行全表扫描。可以使用exist 和not exist代替in和not in。
  5.充分利用“查询分析优化器”。以下两个语句是等效的:select * from table1 where name='zhangsan' and tID > 10000和select * from table1 where tID > 10000 and name='zhangsan'。SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中的搜索条件并确定哪个索引能缩小表扫描的搜索空间,也就是说,它能实现自动优化。会导致“查询分析优化器”失效的SQL操作有,or、NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE等。
  6.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,这将导致引擎放弃使用索引而进行全表扫描。如:查询name以abc开头的id的语句select id from t where substring(name,1,3)='abc'可以改为select id from t where name like 'abc%'。(作者单位:广安职业技术学院)
  参考文献:
  [1]徐慧.数据库技术与应用.北京:北京理工大学出版社,2010
  [2](美)克罗恩克等著, 姜玲玲等译.数据库原理.北京: 清华大学出版社,2008
其他文献
摘要:一些实践性很强的管理类专业,如工商管理、物流管理、旅游管理等,在教学过程中需要大量的实践课程,可是大多数高职院校没有完善的实践教学体系,更没有明确的标准和规范,导致实践教学质量得不到保证,使学生的技能水平与专业培养目标差异很大。本文就管理类实践课程教学效果评价方面的内容进行探究。  关键词:实践课程;教学效果;评价体系一些人认为,管理类课程的教学关键是理论教学,实践教学是多余的,然而在高职院
期刊
摘要:随着人口老龄化的加重,医药行业享受到相关红利。本文以偿债能力为例,从时间动态视角下分析了老龄化下中国医药类上市公司各子行业的财务质量及变动趋势。实证研究结果表明,中国医药类上市公司充分分享了中国人口格局变动红利,财务质量伴随着人口“老龄化”逐渐提高。  关键词:老龄化;财务质量;偿债能力  一、引言  石人炳(2002)采用刘敏(1999)的方法估计了中国人口“老龄化”的比率①,并根据比率变
期刊
摘要:本文以云南白药公司为例,简单介绍了在渠道管理视角下的营运资金分类,主要从采购和销售两方面阐述渠道理论下的医药商业企业存货管理应注意的问题,并从业务角度和财务角度论述企业业务增长与存货管理之间的必然联系,建议企业引入渠道管理理论,加强存货在渠道上的合理分布,通过完善内部控制能提升营运资金管理水平。  关键词:医药商业企业;渠道管理理论;存货管理  一、 渠道管理视角下的营运资金分类  (一)营
期刊
摘要:当人口老龄化席卷全球,养老问题也引起广泛关注和思考。本文着眼于分析储蓄基金制养老保险模式,并以新加坡中央公积金制度为例,从筹集、管理、运营等方面分析其特点、现状及存在的问题,提出相应的改革措施,为我国社会保障制度的完善提供借鉴。  关键词:社会保障;储蓄基金制;养老保险;中央公积金  1.储蓄基金制养老保险概述  社会保障制度是现代国家的重要社会经济制度,是一个国家文明进步的标志之一,是民生
期刊
摘要:随着改革开放,我们国家的经济快速发展,尤其是近几年我国的物流业也得到了迅速发展,因此对企业物流管理水平的要求也变得更高,在企业物流管理中的会计核算方面也有了明显的进步。本文正是对企业物流成本会计核算这方面进行了全方位的研究与分析,对于依然在某些方面欠缺的地方,还有待进一步的完善。  关键词:会计核算;物流成本;物流管理模式  随着我国这几年的飞速发展,逐渐新兴起一个新的行业,这个行业就是物流
期刊
摘要:我国目前对保单获取成本费用化的处理方式颇受争议,许多观点倾向于对保单获取成本DAC化。针对这些争议,本文分析了不同会计准则对保单获取成本会计处理方式及趋势分析,比较了两种处理方式,并对我国保单获取成本处理是否该DAC化提出了自己的见解。  关键词:保单获取成本;DAC化处理;费用化处理  一、 引言  由于保险行业独特的属性,保险公司在获取新业务初期会产生大量的费用,包括代理人的佣金、营销承
期刊
摘要:随着我国企业国际竞争力的增强和国际化接轨水平的不断提升,“走出去”的企业越来越多,客观上需要中国会计师事务所凭借其专业优势,不断发挥国际鉴证、战略咨询等重要作用,在这种趋势下中国注册会计师越来越多承办境外业务是大势所趋。境外中国企业审计先天的制约因素较多,实施审计程序难度大,J会计师事务所畏难而上,多年致力于境外中国企业审计实践,逐渐成为国内一家国际化水平较高的会计师事务所,并摸索出一套独特
期刊
摘要:随着互联网技术、移动通讯技术以及其他信息处理技术的不断发展并日趋于完美结合,移动电子商务技术应运而生。这一技术革新的出现使得随时随地、线上线下的交易活动、在线支付和其他综合服务活动得以实现,各种商贸活动可以随时随地展开。移动电子商务具有便捷、容易识别的身份、移动支付等特点和优势,被广泛应用于旅游业等各个行业。  关键词:移动电子商务;特点;优势;应用  伴随着信息技术革命的全球化浪潮,我国成
期刊
摘要:触屏时代的到来,使手机游戏迅猛发展,然而游戏的体验效果却良莠不齐。交互设计作为设计的基础,直接影响游戏的体验效果,如何让交互设计更人性化,需要交互设计师从用户的角度出发。  关键词:手机游戏;交互设计;游戏体验的人性化  1. 传统游戏设计中存在的问题  手机突破了时间和空间的限制,把人们领入了一个可以自由移动、随身娱乐的时代。手机游戏也在近几年得到了蓬勃的发展,其益智、趣味、休闲、携带方便
期刊
摘要:随着市场经济的不断发展,以及社会政治、经济与文化的进步,我国公司制度中关于中小公司①的规定存在着些许完善之处,所提及须完善之处对于我国中小公司的发展有着非常重要的影响。而日本公司法制度中对于中小公司的规定对于这些方面确实处在领跑的位置,因此,笔者试图将我国公司制度中关于中小公司的相关规定与日本公司制度中的中小公司相关规定进行对比,并揭示我国公司制度的发展方向与改革途径。  关键词:我国公司制
期刊