基于Oralce数据库SQL查询优化

来源 :硅谷 | 被引量 : 0次 | 上传用户:radarcauc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要 随着人们生活节奏的加快和数据库信息量的扩大,对于查询效率提出了更高的要求。Oralce数据库是目前应用最为广泛的数据库,提高其查询效率对于促进系统运行有着重要意义。本文就根据SQL查询优化的原理,从磁盘I/O访问、内存大小等几个方面对Oralce数据库SQL查询优化进行了分析。
  关键词 Oralce数据库;性能优化;SQL查询优化
  中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2015)03-0269-02
  在Oralce数据库SQL查询中,其实质是通过访问磁盘I/O来获取所需要的数据,在此过程中,还会受到数据库系统CPU使用效率、数据库命中率以及吞吐量等几个方面的影响。而对Oralce数据库的SQL查询优化,其目的就是尽可能减少磁盘I/O的访问量和资源竞争,进而提高查询相应效率,以实现更快的得到所需信息的目标。
  1 Oralce数据库SQL查询优化原理
  1.1 避免影响SQL性能因素
  在Oralce数据库SQL查询中,由于可能会受到系统导入不准确、设置的初始参数不合理和统计数据模式不合适等因素的干扰,都会对SQL的性能造成不良影响,导致出现优化程序判断失误、索引扫描响应出现偏差、过滤条件设置不当导致多个表格连接时中间结果出现大量的无用记录、数据库的查询并行化处理利用效率较低等问题。因此,在优化中,需要充分对这些因素进行考虑,最大程度的保证相关参数、系统等设置的准确性。
  1.2 降低磁盘I/O访问量
  磁盘I/O是影响数据库响应速度的重要因素,其会降低响应速度的问题有磁盘之间的互相竞争、I/O的读取次数过多以对数据库各部门的分配管理不当等问题。磁盘竞争多是由于在对数据库查询过程中,相应的进程会访问重做日志文件和数据文件,这两种文件在同一磁盘中会发生竞争。所以,在Oralce数据库优化时,需要在此问题上进行改进[1]。
  1.3 数据库内存管理
  数据库内存的大小会对数据查询进程运行造成一定的影响,其多会受到各项初始化参数的影响。以数据库工作区SGA为例,它与Oralce进程结合组成一个数据库,并对其内数据进行管理,对用户查询进行应答,SGA主要由数据缓存区、日志缓存区和共享池三部分组成,这些内存区域的大小会受其初始文件initSID.ora的初始化参数影响,进而对其性能造成影响。因此,在对数据库查询进行优化时,还需要加强对数据内存的管理。
  2 Oralce数据库SQL查询优化的措施
  2.1 优化数据库
  2.1.1 对数据关系规范化进行合理调整
  Oralce数据库中的数据关系规范化为SQL查询制定了相应的规则,减少了逻辑和物理I/O访问的次数,避免了过多的数据冗余问题,提高了数据增、删、改的效率。但是,如果数据被完全规范,其查询性能并不是最好的,这是由于数据之间表连接操作特点而造成的。因此,在对数据关系规范化进行调整时,需要根据实际应用的需求,合理地将非规范化约束进行保留,将冗余的数据字段与不全部依赖主键的表相联系,来实现减少表连接次数,提高查询速度的目的。
  2.1.2 利用Connection Pool机制
  在数据库查询时,最占用CPU的是数据库连接过程,此过程会导致查询用户需要等待较长的时间,对此,可以采用Connection Pool机制的方式,也就是将当前的连接进行那个复制,来时用户直接得到相应的数据库连接,避免重新建立数据库连接的问题,来达到提高系统相应速度的目的。
  2.2 对磁盘I/O进行优化
  为了避免由于磁盘竞争引起的系统响应时间过长,可以将数据文件和重做日志文件分别重新安排,比如将表数据文件分配到多个不同的磁盘中,来平衡系统的I/O,或者把日志、索引、数据等放置于不同的I/O设备中,来减少I/O的访问读取次数。利用这种改进方式,可以实现磁盘I/O的并行访问,降低I/O的读取次数,进而达到提高查询优化的目标。
  2.3 对内存进行优化调整
  根据影响数据库内存的因素,在对其进行优化调整时,可以分别从数据缓冲区、日志缓冲区和共享池三个方面着手。优化调整操作需要先利用DBA(数据管理员)权限来打开数据库,并输入和执行SQL>select * from v$ sga来得到SGA的设置信息,进而根据实际情况做出合理的调整。
  2.3.1 数据缓冲区的优化调整
  在用户查询数据过程中,数据库服务器的工作进程是先从磁盘文件中读取数据,再将数据同步复制到数据缓冲区,然后从缓冲区将相关数据反馈给用户,由此可知,数据缓冲区的功能是数据中转站,其大小会直接影响到数据存取的速度。在确定SQL语句调整合理后,缓冲区内存配置的合理性可以利用命中率来进行判定,命中率的计算方法如图1所示,此方法得到的Hit Ratio值为99.59094[2]。
  因此,如果缓冲区的命中率低于98%时,就需要对其配置进行增大调整,具体方法是将intSID.ora文件下的db_block_size的参数调大,比如数据库默认为2KB,可以将其调整为8KB,这样就能够通过更少的I/O次数来完成对数据库的访问。
  2.3.2 日志缓冲区的优化调整
  日志缓冲区的功能是通过内存与内存间的操作来提高数据库操作速度,其储存的是数据库的修改信息,大小取决于log_buffer的值,此值可以通过SQL>select * from v$ sgastat where name =‘log_buffer’的方法来查询,查询值即为SGA中日志缓冲区实际大小。
  日志缓冲区大小的合理与否可以通过如图2所示方法进行确定,如果查询得到的结果大于1%,应该对日志缓冲区进行增大。
  2.3.3 共享池的优化调整
  共享池的大小是由shared_pool_size参数控制的,如果过小而会降低其性能,进而占据大量的CPU,给数据库查询造成阻碍。数据库主要是由库高速缓存和数据字典高速缓存组成,其衡量指标也是命中率,两者命中率查询方法如图3所示,当两者的命中率小于95%时,则应该增大共享池的大小。
  3 结束语
  Oralce数据库SQL查询优化对于提高数据库应用系统的工作效率有着重要意义。在对Oralce数据库进行QL查询优化,需要从影响其查询性能的因素出发,通过合理地调整数据关系规范、磁盘I/O和内存大小,来达到提高数据查询效率的目标。
  参考文献
  [1]张学义,王观玉,黄隽,等.基于Oralce数据库SQL查询优化研究[J].制造业自动化,2011(2):116-118,121.
  [2]周志德.Oralce数据库的SQL查询优化研究[J].计算机与数字工程,2010(11):173-178.
其他文献
目的观察米非司酮配伍米索前列醇在瘢痕子宫中期妊娠引产的疗效。方法对56例瘢痕子宫孕妇,孕期13-26周,用米非司酮配伍米索前列醇引产。结果引产成功率100﹪,无一例子宫裂伤或瘢痕
目的探讨双源CT多平面重组技术在胆道梗阻病变中的应用价值.方法对50例临床证实的梗阻性黄疸患者行双源CT扫描,薄层数据进行胆道多平面重组,对梗阻原因进行定位、定性诊断,并与
摘 要 电气线路是电梯正常运转的关键,但是电气线路却因为电介质的问题而出现故障,比如电介质的电导、损耗以及击穿等问题,都会最终导致电梯安全故障,如果电梯在运行期间出现了故障,将会给乘坐电梯的人员身心造成伤害。本文首先介绍了电梯电气电路损坏的主要原因,进而探讨了其安全检验的措施,希望能够为电梯电气线路检验人员提供帮助。  关键词 电梯电气线路安全检验  中图分类号:TU857 文献标识码:A 文章编
期刊
目的探讨T2DM患者血清内脏脂肪素水平变化及影响因素.方法对本院同期健康体检者与T2DM患者的血清内脏脂肪素与生化指标水平进行测定.结果观察组FPG、FIns、HOMA-IR、HbA1C、
摘 要 电视制播网络是指电视台节目制作与播出的网络,其主要功能是实现网络中的资源共享,使用远程资源成为可能;电视节目制作和播出网络需要传输广播级的音频与视频信号,它们需要更大的传输带宽、更高的存储容量,因此其存储设计和网络安全至关重要。  关键词 存储架构;在线存储;带宽;码率;网络安全  中图分类号:TN948 文献标识码:A 文章编号:1671-7597(2015)03-0258-02  包头
本文阐述了UPS的结构特点及工作原理,并对UPS供电系统在播控机房的应用和维护进行了详细说明.
目的探讨手术治疗胃十二指肠溃疡并发急性穿孔的疗效.方法将本院126例胃十二指肠溃疡并发急性穿孔患者随机分成观察组(63例)与对照组(63例),观察组采用单纯穿孔修补术,对照组
以γ-Al_2O_3为载体,分别采用超声浸渍法和常规浸渍法制备催化剂。通过NH3-TPD、TPR、N2吸附、X射线衍射、XPS等手段对催化剂的孔结构和理化性质进行分析,考察了浸渍方法对催
产后出血是分娩期严重并发症之—,是四大产妇死亡原因之首,其发生率为2%—11%。患者出现产后出血时怎样及时有效地止血—直困扰着广大产科临床医生。为抢救孕产妇生命往往在常
目的回顾性分析2010年度1月—2011年12月,120急救中心多发伤院前急救效果的影响因素,对院前急救模式和技术应用作进一步探讨。方法分析565例院外创伤病人的现场及转运过程救