基于SQL Server的SQL优化

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:lau_lfm
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:应用SQL不仅要确保它的正确性,同时也要保证SQL有良好的执行性能。该文分析介绍了几种常用的SQL优化方法。论述了SQL Server数据库优化机制。
  关键词:SQL Server;数据库;优化
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)35-2536-02
  SQL Optimization Based on SQL Database
  YANG Ya-ping
  (Chien-shiung Institute of Technology, Taicang 215411, China)
  Abstract: Not only Correctness but also efficiency one writes SQL statements. This article introduces and analyses of SQL, which include proper indexes design .This paper research,some questions of SQL performance optimization with SQ L SERVER such as operator operation. some suggestion of optimization bate on pure theory would misadvise user of SQL.
  Key words: SQL Server; database; optimization
  
  1 前言
  
  微软公司的SQL Server数据库因为其价格便宜、功能强大、容易操作等特点已经被中国中小企业广泛应用,但是SQL Server数据库优化是一个常常被人们忽视的问题。甚至有人认SQL Server数据库优化并不重要,但事实是SQL Server数据库是一种高性能的数据库管理系统,在客户/服务器体系结构中得到了广泛的应用。基于SQL Server的数据库应用系统的性能包括系统的响应时间、吞吐量、系统的并行处理能力等。从数据库设计、查询结构、并行处理、客户/服务器模式、应用编程等方面进行优化调整,可以有效地提高系统的性能。SQL Server数据库的优化方法还有很多,比如优化内存、优化数据库磁盘等等。下面就SQL Server环境下的SQL优化方法探讨做些简单的探讨。
  
  2 与SQL Server数据库有关的硬件设计性能的优化
  
  与SQL Server有关的硬件设计包括CPU、内存、磁盘子系统和网络。
  2.1 系统处理器(CPU)
  根据自己的具体需要确定CPU结构的过程就是估计在硬件平台上占用CPU的工作量的过程。我们可以使用 System Monitor确定CPU的使用率,如果以75%或更高的速率长时间运行,就可能碰到了CPU瓶颈问题,这时应该升级CPU。
  2.2 内存(RAM)
  为SQL Server方案确定合适的内存设置对实现良好的性能是至关重要的。SQL Server用内存做过程缓存、数据和索引项缓存、静态服务器开支和设置开支。SQL Server最多能利用 2GB虚拟内存,这也是最大的设置值。还有点必须考虑的是Windows2003 Server和它的所有和关服务也要占用内存。
  2.3 磁盘I/O系统
  设计1个好的磁盘I/O系统是实现良好的SQL Server方案的一个很重要的方面。这里讨论的磁盘I/O系统至少有1个磁盘控制设备和1个或多个硬盘单元,考虑到磁盘设置和文件系统,有如下特点:控制器有高速缓存;总线主板上有处理器,可以减少对系统CPU的中断;异步读写支持;32位RAID支持;高速SCSTU 320控制器,读写速度320M B/S。
  由I/O系统发生的瓶颈问题是数据库系统可能遇到的最常见的同硬件有关的问题。配置很差的I/O系统引起性能问题的严重程度仅次于编写很差的SQL语句。解决I/O系统有关的问题最简单的办法就是增加磁盘驱动器。
  
  3 SQL Server数据库的查询优化
  
  查询优化首先要注意的一个问题是存储过程,设计优良的应用程序都应当使用存储过程,不论是否将应用程序的业务逻辑写入存储过程都应如此,甚至连没有业务逻辑组件的标准SQL语句,在用参数打包成存储过程后也能获得性能收益,编译进存储过程的SQL语句在执行时可省去大量的处理。
  存储过程的另一个优点是客户端执行请求使用网络的效率往往比将等效的SQL语句发送到服务器高。例如。在SQL Server中假设应用程序需要将一个人的二进制值插入image数据列,为使用INSERT语句发送数据,该应用程序必须将该二进制值换为字符串(其大小翻两倍),然后发送到服务器,服务器再将该值转换回二进制格式以存储在image列中。相反,应用程序可以创建下列格式的存储过程:CREATE PROCEDURE Procedurel (l pl image)ASINSERT Tablel VALUES (a pl)。当客户端应用程序请求执行过程P时,image参数值将一直以二进制格式发送到服务器,从而节省处理时间并减少网络流量。数据库系统的并发控制也是影响性能的一个重要方面。为了避免多个用户同时操作可能导致的数据不一致,SQL Server采用了封锁机制。SQL Server中的锁可分为共享锁(shared lock):由读取页的进程所使用。共享锁只在特定页的读取过程中有效。修改锁(update lock),用于将要修改数据的进程,当数据发生变化时,修改锁自动改为独占锁。独占锁(exclusive lock),用于当前正在修改数据的进程。独占锁作用于所有影响到的页上直至事务结束。
  
  4 SQL Server数据库设计的优化
  
  4.1 SQL Server数据库的规范化
  数据库设计方面包括表的设计、表的数量和大小、表的设计规范程序、游标的使用等等都会对运行效率有重要影响。其中涉及到数据库规范化问题时,数据库被规范化后,减少了数据的冗余,数据行趋向变窄这样SQL SERVER数据库的每页可以包含更多的行,从而加速表的扫描和返回多行的查询,改进了单个表的查询性能。但是,另一方面,当查询涉及多个表时,则需要更多的连接把信息从多个表中组合到一起,这会引起大量的CPU和I/O处理。所以有时有意违反规范化设计的规则,这是数据库的非规范化。就像刚才说的数据库的规范化原则会产生较少的列和更多的表,但表关系也许需要通过复杂的合并来处理, 这样会降低系统的性能。在某些情况下,非规范化可以改善系统的性能,通过重新定义实体以减少外部属性数据或行数据的开支。
  4.2 SQL Server数据库索引的选择
  索引是常见的数据库对象,它的设置好坏、使用是否得当,极大地影响数据库应用程序和数据库的性能。在良好的数据库设计基础上,能有效地使用索引是 SQL SERVER取得高性能的基础。如果对于一个未建立索引的表执行查询操作, SQL SERVER必须进行表扫描,从磁盘上读表的每一个数据页,从而挑选出所有符合条件的数据行。特别是当一个表有很多行时,就会浪费大量时间,效率太低。然而在建立索引之后,SQL SERVER将根据索引的指示,直接定位到需要查询的数据行,从而加快 SQL SERVER 的数据检索操作。这样利用索引可以避免表扫描,并减少因查询而造成的 I/O 开销。
  建立索引是以最小的方法得到所需数据的有效方法。对于每一个查询SQL Server优化器将确定是否有相关的索引可以用于访问数据。一个利用索引的访问与全表扫描相比,可以大大减少查询时间。索引可分为聚集索引与非聚集索引两种,前者对数据进行物理排序,速度快,但一个表只能建立一个;后者仅对数据进行逻辑排序,速度相对聚集索引慢,但一个表可以建立多个。索引的建立虽然加快了查询,另一方面却降低了数据更新的速度,这是因为新数据不仅要增加到表中,也要增加到索引中。另外,索引还需要额外的磁盘空间和维护开销。因此设计时应选择有效的索引,避免过多引用索引。通常只为对应用程序起关键作用的查询,或者被很多用户频繁使用的查询创建索引。所以也要注意在使用索引的时候一定要谨慎,要选择恰当的索引,尽量减少磁盘访问的次数,提高整个系统的性能。
  
  5 结束语
  
  随着 SQL 数据库中数据量的增加,运行效率将是数据库应用与管理中的关键问题。而影响其效率的因素是多方面的,本文首先介绍了SQL Server环境下的SQL优化的情况,然后本文对SQL Server数据库有关的硬件设计性能的优化、SQL Server数据库查询符号的优化、数据库的设计等方面提出了一些对数据库的优化技术,当然实现优化的方法还有很多,要根据具体情况而定。对于不同的应用情况,我们应该具体情况具体分析,各方面优化措施综合运用,本文对从优化方法的探讨对有效提高整个数据库的运行效率有一定的帮助。
  
  参考文献:
  [1] 刘波,李陶深,杨柳,严毅.MIS中数据库性能优化的研究[J].计算机工程.2002,27(7):98-100.
  [2] 谷震离.查询语句对SQL Server数据库查询性能优化分析[J].福建电脑,2007(3):21-22.
  [3] 王振辉,吴广茂.SQL查询语句优化研究[J].计算机应用,2005,25(12):207-208.
  [4] 杨庚.关系数据库SQL语言查询过程的分析和优化设计[J].计算机工程与应用,1999(11):87-88.
其他文献
【摘要】项目化学习是比较能体现“以生为本”的一种学习方式,在项目任务驱动下,聚焦学生体验与表达,实现学习的真正发生。本文主要结合统编教材六年级上册第四单元小说单元的教学,探究项目化学习的实施路径。  【关键词】项目化学习,三“度”空间,语文素养,小说教学  当前,在深度学习理念的驱动下,学生的学习形态正在发生变化。学科素养视角下的项目化学习可以在语文学科与语文素养之间架起一座桥梁,让学生在一段时间
综观近几年的高考材料作文,命题者有意识地将题目进行情境化设置,以期让考生在行文中能有更真实的自我表达,能写出自己独特的思考与理解。正如教育部考试中心张开老师所说:“在材料作文中增加任务驱动型指令,着力发挥试题引导写作的功能,增强写作的针对性,使考生在真实的情境中辨析关键概念,在多维度的比较中说理论证。”[1]2017、2018年全国卷Ⅰ作文题就是这种真实情境的命题:2017年全国卷Ⅰ让考生根据提供
萧朝德  字望公,号蜀汉堂主,1954年生,毕业于四川大学新闻系。1975年携笔从戎,军旅生涯18载。现任西南商报社副总编、四川省美术家协会会员、四川长江书画院副院长、成都市书法家协会会员、成都市政协书画院画师、成都市武侯区美协副主席、成都巴蜀书画院院长兼秘书长。师从著名梅兰画家邓奂彰先生、著名山水画家龙国屏先生、著名花乌画家曾教宽先生以及著名书法家刘叔亮先生,深得四位恩师的教诲和厚爱。在国内外报
中国语文学科外国文学教育已有百年历史,自新文化运动始,中国语文便展开探索。这一时期南京东大附中穆济波开展了道尔顿制下的外国文学教学实践活动,他凭借深厚的学科涵养、开阔的文化视域、严谨的教育研究、勇于创新的教学实践,留下了宝贵的教学经验。遗憾的是迄今为止学界并未给予历史回顾和专业研究。我们重新聚焦其围绕外国文学作品开展的独特阅读教学形态——群文阅读教学,从教学内容、教学实施、教学效果三个方面回眸,这
摘要:《手》是美国作家舍伍德·安德森的优秀短篇小说之一,生动地刻画了在工业文明的入侵下人们的精神状况,揭示美国现代社会所存在的精神生态危机。在生态批评的指引下解读《手》,分析作品中所蕴含的自然生态、社会生态尤其是人的精神生态危机,促使人们对精神生态平衡给予关注,从而解决内心精神生态上所出现的问题。  关键词:《手》 生态批评工业文明精神生态  一、引言  舍伍德·安德森是20世纪美国现代主义小说的
当前,文化交流日益频繁,越来越多的专家学者投入到中西文学的比较研究中,也涌现出了大量的学术成果。由李萌羽著、中国社会科学出版社于2017年出版的《跨文化沟通与中西文学对话》一书,跳出了体系建构的研究框架,从具体的问题入手,跨越文化差异,对中西文化、文学进行了对比和审美评析。作者重点关注全球化视野下中西文学的共同问题,同中辨异、异中求同,为中西文学关系研究提供了新的视野。  全书共分为三大板块。第一
摘要:文章针对目前高校对Linux人才培养的某些不足,结合操作系统实验教学中存在的问题,提出了一种整合操作系统实验课程和Linux应用开发课程一种思路,并给出了具体的整合方案,以及课程整合后的优点与不足。  关键词:Linux系统;程序开发;操作系统原理;实验教学  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)32-1164-02  The Discussion a
《义务教育语文课程标准(2011年版)》在“总体目标与内容”第7条中对文言文学习有这样的要求:“能借助工具书阅读浅易文言文。”查阅第一学段、第二学段、第三学段的“目标与内容”,均无涉及文言文学习的文字。但是以往(如人教版、沪教版、苏教版等)多个版本的小学语文教科书,包括2017年9月起在全国使用的统编小学语文教科书都编入了数量不一的文言文。课标缺失相关要求,但是小学文言文教学实践却风生水起。近年来
摘要:由于决策问题变得越来越复杂,规模越来越大,传统的IDSS面临着巨大的挑战。该文把Agent 技术融于智能决策支持系统之中,提出了基于多Agent 系统(MAS)技术的智能决策支持系统体系结构,并对决策Agent的结构模型进行了描述。  关键词:决策支持系统;MAS  中图分类号:TP18文献标识码:A文章编号:1009-3044(2008)35-2332-01  Research on In
书名:古代文学批评文体研究  作者:吴作奎  出版社:武汉大学出版社  出版时间:2014年  ISBN:9787307148987  定价:54元  近十几年,关于古代文学批评的问题研究逐渐进入人们的视野。虽然相关的理论概念、系统框架尚不成熟,但并不影响研究者的研究热情。笔者在进行课题“新时代高等学校智能课堂教学的策略与方法研究”(项目编号208880014)的研究时参考了吴作奎著、武汉大学出版