浅析数据库中SQL语句的优化

来源 :数字化用户 | 被引量 : 0次 | 上传用户:zuomingyu6
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】查询语句的效率不高对数据库性能产生影响,为提升数据库系统的性能,应就SQL语句实施合理的优化,其实即为:把性能不高的SQL语句变为功能一样、而性能优异的一种SQL语句,通过对优化方法和技巧的研究提高SQL语句的效率,在一定程度上也就提高了查询的效率。
  【关键词】数据库 SQL 语句的优化
  设计、开发以及成品这些是数据库系统的一个生命周期。对于设计环节,针对数据库性能实施优化,花费最少、收益最高;但对于成品环节,又就数据库实施性能优化,花费最多、但收益最低。针对数据库性能优化而言,一般能对硬件、操作系统、数据库参数以及应用程序的优化。对硬件进行升级即为最普遍的优化办法,按照资料统计,可以看出,针对硬件、操作系统以及数据库参数作出的优化,得到的性能增加,全部加起来大概只提高40%左右,而60%的提升是来自对应用程序的优化;很多优化学者说,就应用程序实施优化,能让系统的性能增加80%。应用程序优化一般包括二方面:源代码以及SQL语句,源代码的优化因为牵涉到对程序逻辑的变更,对风险、时间与成本的要求非常高,但是就数据库系统性能的增加收效不好;因此常常运用对SQL语句的优化。
  一、优化SQL语句的原因
  对于数据库系统,最基本、常用、繁杂的操作就是查询,该操作在全部数据库操作之中占到的比例最高。在数据库系统累积达到某种程度,查询之时要是运用单条顺序扫描,扫描一次全部的记录会消耗掉几十分钟,有时更会几个小时,进而,系统失去即实的使用价值。运用何种查询策略,可以让查询时间变成几秒、几秒,如何更精确、简便的得到查询结果,就是要对SQL语句的优化问题。
  查询优化为尽力找出和给定的表达式等价,同时执行效率很好的表达式,某查询通常存在多种实现方法,主要为怎样找出和它等价、同时操作时间花费少的一种表达式,查询优化关注的问题是怎样省时、省空间以及效率高。优化的核心问题是尽可能减少查询中各表的参与加工的数据量,最终实现优化空间与时间这一目的。
  首先,因为SQL语句为就数据库实施操作的仅有途径,其决定了数据库系统的性能。
  其次,因为SQL语句花费70%到90%的数据库资源。
  第三,SQL语句因为和程序设计逻辑相独立,就SQL语句实施优化,影响不了程序逻辑。
  再次,SQL语句本身存在不一样的写法,而于性能上有着很大差异。
  最后,因为SQL语句学起来很简单,然而精通较难。
  二、如何实施SQL语句优化
  优化SQL语句的方法主要通过重写实施优化,DBA、有时也是资深程序员会对SQL语句执行计划进行合理研究,根据经验,对SQL语句重写,再就性能与结果作出对比,以便寻求到性能比较好的SQL语句。
  (一)在查询Select语句中用Where子句限制返回的行数,避免表扫描,若返回不必要的数据,既浪费了服务器的I/O资源,又加重了网络的负担降低性能。
  (二)在查询时不要返回不需要的行、列。
  (三)在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。
  (四)select中Where子句选择所有合适的行,Group By用来分组统计行,Having子句用来剔除多余的分组。如果Group BY的目的不包括计算,只是分组,那么用Distinct更快,Havin子句仅在聚集 Group By子句收集行之后才施加限制,这样导致全表扫描后再选择,若可以使用Where子句来代替 Having,则在扫描表的同时就进行了选择,其查询效率大大提高了。但是当Having子句用于聚集函数时不能由WHERE代替时则必须使用Having。
  三、提升SQL语句的开发水平
  (一)WHERE后面的条件顺序影响
  WHERE子句后面的条件顺序对大数据量表的查询会产生直接的影响。如:
  Select * from zl_yhjbqk where dy_dj = '1KV以下' and xh_bz=1
  Select * from zl_yhjbqk where xh_bz=1 and dy_dj = '1KV以下'
  以上两个SQL中dy_dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的时候99%条记录都进行dy_dj及xh_bz的比较,而在进行第二条SQL的时候0.5%条记录都进行dy_dj及xh_bz的比较,以此可以得出第二条SQL的CPU占用率明显比第一条低。
  (二)查询表顺序的影响
  在FROM后面的表中的列表顺序会对SQL执行性能影响,在没有索引及没有对表进行统计分析的情况下,就会按表出现的顺序进行链接,由此可见表的顺序不对时会产生十分耗服务器资源的数据交叉。
  四、写出专家级的SQL语句
  查询优化是关键的问题,其重点在于如何提高 SQL 的执行效率,所以选择什么样的查询语句是关键。进行数据库开发及其维护的时候,查询的优化能够提升系统的性能,针对很大数据量的数据库系统而言,显得更加重要。
  写SQL语句时更主要的是理解优化的目的,所有的数据库优化就是一个原则,尽量少的逻辑读,尽量少的占内存,所以那些优化的细节并不是主要的,而是如何从运行的系统迅速定位问题,如果从SQL设计初期避免问题才是关键,它就能帮用户找到最佳的写法。
  参考文献 :
  [1]张孔倚.关于人工智能技术在情报检索中的应用.山西大学学报,2007(3)
  [2]李明,沈红君.情报检索智能化.情报理论与实践,2005(6)
  [3]涂序彦.人工智能及其应用.北京:清华大学出版社,2006。
其他文献
随着电力系统智能化电网的迅速发展,输配电线路由于距离较长、地域较广,受自然环境与人为因素影响的机会比较多,随时可能遭到自然灾害的侵袭和各种人为的外力破坏。因此,输配电线路的安全经济运行,必须依赖于科学管理,加强制度与手段保障。  一、建立完善的管理制度  1.要想降低线路损耗,提高运营效率,就必须从设备、线路和人员管理等方面制定严格的管理制度,执行规范化、标准化的线路维护手段,做到定期跟踪巡视,把
期刊
【摘 要】近几年,中日关系一直是人们较为关注的重要问题。本文通过中日关系的发展历史、中日关系的症结等方面来阐述处在十字路口的中日关系,以及提出了如何解决中日关系当前所存在的问题。  【关键词】中日;关系;历史;发展;症结  一、中日关系的历史  中日两国的历史关系,周恩来总理曾概括为“两千年友好,五十年对立”。  (一)古代中日关系  古代,中日两国有着深挚的历史渊源和持久的友好经济文化交流。秦始
期刊
【摘 要】交互式动画是依托新媒体技术的应用逐渐形成和发展起来的一种新兴的动画艺术表现形式。本文通过交互式动画概念和特点的总结,结合实际交互式动画案例,从创意来源和创作平台的选择,到作品的创意构思和交互式功能的实现来对交互式动画的设计手段、方法予以阐述。  【关键词】交互式动画;创意;新媒体  一、引言  随着信息技术的飞速发展,动画的信息传播方式不再局限于单一的线性播放,更加趋于人性化的交互式动画
期刊
【摘 要】新课程教学,强调全面发展学生的素养,培养他们的学习、探究能力,因此,与新课程相适应的信息技术运用,也应摆脱仅仅作为教师教学辅助手段的地位,而应有效地融入整个学科教学,使信息技术运用成为中学语文教学中不可或缺的重要一环。《边城》一课的教学,就可在背景资料检索、文本探究、人物形象分析、对作品的再创作等方面,有机融入多媒体等信息技术手段的运用。  【关键词】新课程 信息技术运用 边城 资料检索
期刊
【摘 要】随着我国的发展和国家教育产业的不断升级和进步,各个专业都在进行不同程度的教学改革。在高职类院校的计算机专业课程也在不断的改革,该课程作为学生为当地经济服务的重要技能和手段一直备受关注,更好的让学生掌握课程内容并培养学生进一步深入研究学习的可能性一直以来都是业内人士努力的目标。本文中,笔者以C语言程序设计这门具体课程为例,首先对学生学习该课程的问题进行分析,从学生的心理和行为两个角度研究课
期刊
【摘 要】发展构建终身学习的学习型社会,数字化教育资源的建设成为教育信息化的迫切要求,建设与整合数字化教育资源体系必将成为实现教育信息化的战略任务。  【关键词】开放教育 数字化 资源整合 路径  《国家中长期教育改革和发展规划纲要》明确提出:构建灵活开放的终身教育体系。大力发展现代远程教育,建设以卫星、电视和互联网等为载体的远程开放继续教育及公共服务平台,为学习者提供方便、灵活、个性化的学习条件
期刊
一、课程设计总体思路与目的  舞蹈《融》是一个具有现代舞风格的儿童舞蹈原创作品。  本课程设计思路:主要是采用“项目教学法”,这是萌芽于欧洲的项目教学法,对于校外舞蹈教学具有重要价值。学生在教师的指导下完成《融》这一项目学习的全过程,在这一过程中学习掌握教学计划内的教学内容,可以极大提高学习兴趣,调动学习积极性。这是一种典型的以学生为中心的教学方法,非常符合校外教育宗旨。校外教育的舞蹈教学旨在培养
期刊
【摘 要】教师要充分发挥德育功效提升潜能生的学习能力,认识的到这个工作的重要性。  【关键词】数学潜能生 德育  一个刚刚考入大学的学生对我说:“这些年的学习中唯一的感觉就是累,而最让我头痛,花费精力最多的是数学。”早晨上课前也有许多学生在忙碌数学家作的紧张情形,更有甚者干脆拿来别人的成果一抄了之;数学课上有的学生无精打采,注意力不集中,难以理解和吸收课上的内容。于是许多学生在数学学科上表现出厌学
期刊
【摘 要】学生能否学得新信息,很大程度上取决于他们认知结构中已有的观念。有意义的学习是通过新信息与学生认知结构已有的有关观念的相互作用才得以发生的,因此帮助学生提炼知识,形成一定的结构,形成一定的思想方法将有利于学生对故有知识信息的记忆和新知识信息的获取。  【关键词】提炼整理 认知结构 思想方法 取中  中学化学有几块重要的主干知识,元素及其化合物、有机化学、物质结构理论、化学平衡理论、电解质溶
期刊
【摘 要】美育是大学人文教育的重要组成部分,也是高校德育的主要方面,实施美育是素质教育提升的题中之义。近代伟大的教育家蔡元培先生把美育提升到人格教育、全民教育和终身教育的高度。在高校里实行美育,可以使大学生的形成积极的审美兴趣和艺术爱好,使情感得到陶冶,人生境界得到升华,从而有助于培养大学生完满的人格。在新媒体异军突起的现实语境下,传统的美育方式遇到了一些挑战,同样也面临着诸多机遇。本文立足于高师
期刊