您好, 访客   登录/注册

Oracle数据库系统优化的研究

来源:用户上传      作者:

  摘要:随着网络应用的普及,系统数据的存放地――数据库的数据量也急剧膨胀。计算机应用系统被广泛应用在社会的各行业、各部门。如何提高海量数据库系统的性能变得尤为重要,本文通过理论和实验研究,对0racle海量数据库的优化作了一些研究和探索,说明海量数据库系统性能优化的重要性及0racle海量数据库系统优化可以通过应用系统本身的调整来提高系统的性能。
  关键词:海量数据库系统;数据库优化;系统优化
  中图分类号:TP392 文献标识码:A文章编号:1007-9599 (2011) 12-0000-01
  Study on the Optimization of Oracle Database System
  Xia Bin
  (Blue Star Science and Technology Computer Company,Zhanjiang524001,China)
  Abstract:With the popularity of network applications,system data stored in a database of the data amount expands quickly also.Computer application system is widely applied in the social sectors,each sector.How to improve the performance of database system becomes very important,this article through the theoretical and Experimental Research on 0racle database optimization,make some research and exploration,illustrate the massive database system performance optimization and the importance of the 0racle database system optimization can be achieved by applying the system adjusts itself to improve the performance of the system.
  Keywords:Massive database system;Database optimization;System optimization
  随着计算机的普及和信息通信网络用户的爆炸性增长,对于传统的电信业、金融业、ICP来说,网上信息量的猛增,人们对数据通信的需求也日趋膨胀,也出现了新的问题。大量的数据通信给原本能力有限的传统通讯网络带来了前所未有的挑战,许多电信企业、金融机构和运营商都采用了海量数据库系统。本文对Oracle海量数据库系统优化的方法进行介绍,来说明海量数据库优化的重要性。
  一、数据库硬件环境优化
  数据库的硬件环境包括cup、内存、数据库的存储介质和操作系统,对数据库系统的优化成为数据库硬件环境优化的主要手段。
  (一)存储介质优化。海量数据库一般使用RAID的方式作为数据库存放数据的物理介质,在系统中中文名称是廉价(独立)磁盘冗余阵列。通过在多个硬盘上同时存储系统需要存储大量的数据而且对数据库的性能有一定的要求,RAID被看作是一个逻辑分区,从而大大提高了RAID系统的容错度。为了提高数据库的I/O吞吐量,很多RAID模式中都有较为完备的相互校验/恢复的措施,所以,RAID的初衷主要是为了大型服务器提供高端的存储功能和冗余的数据安全,提高了系统的稳定冗余性。
  (二)操作系统的优化。操作系统上的优化主要是针对在操作系统级别上I/O的优化,可行的方法就是增大每次传输最大I/O大小的限制,以提高I/O的吞吐量,忽略掉操作系统的文件缓存,每次能够传送尽量多的数据,如果操作系统支持异步I/O,还可以使用高级文件系统的-些特性,尽量使用异步I/O,也就是平时所使用的裸设备。
  二、数据库本身的优化
  (一)数据库数据文件的分配。用户的数据最终将被储存在磁盘上,理分配数据库数据文件的目的就是要平衡I/O的带宽,由于磁盘的速度和内存的速度相差很多,也就是说,控制器和物理设备来达到平衡数据库的I/O的目的,分配到不同的文件系统。充分利用磁盘的传输带宽将大大提高数据库的性能,让数据库中经常需要进行读写的“熟点”数据分得更多的I/O带宽,这种情况在海量数据库中尤其突出,不太访问的数据则分较少的I/O带宽并且尽量减少I/O资源的竞争,如何将数据库的数据文件,也是在建立数据库前期所要面对的一个重要问题。
  (二)数据库内存的分配。一个复杂的数据库系统中会同时运行着许多语句,理解数据库如何使用内存,这些语句当中会进行很多操作,可以防止过度分配内存,他们都必须分配一些内存进行这些操作,并有助于对内存的使用进行调优。数据库优化的时候常常会遇到数据库内存如何分配的问题,从而获得更好的性能。要解决数据库内存如何分配的问题,在如何在有限的内存空间内进行合理的分配才能发使数据库发挥较高的性能,必须对数据库对内存的分配方法和内部结构有所了解才能做出正确的设置。
  三、应用系统优化
  (一)超大表的优化。超大表是指一张表存放了大量的数据并且实时或者定时插入大量的数据,当对这个表进行查询时,另外处于不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘I/O,但是记录的修改删除很少甚至没有修改和删除的操作,只需要在表分区中进行扫描,这些表往往要作为系统进行统计操作的原始数据。明显缩短了查询时间,分区将超大表的数据在物理上分隔开,一个精心设置的分区可以将数据传输对磁盘I/O竞争均匀地分散开,不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。
  (二)数据库连接方式的优化。有些海量数据库系统需要面对大量客户端,而连接的建立、断开都有连接池自身来管理。如果采用传统的数据库连接方式会严重影响整个系统的性能。还可以通过设置连接池的参数来控制连接池中的连接数。对可以采取数据库连接池方法进行优化,每个连接的最大使用次数。通过使用连接池,使用连接池的方法就可以解决上述问题,将大大提高程序效率,当程序中需要建立数据库连接时,可以通过其自身的管理机制来监视数据库连接的数量、使用情况,从连接池中取一个来用而不用新建。使用完毕后,只需放回连接池即可。
  四、总结
  一般使用先外后内的顺序比较好,先对数据库的外围资源进行优化,然后再对系统内部进行优化,没有一个“完美”的解决各种系统的方案,大量的0racle也是一致推选使用分区技术来解决超大表的问题。对于不同的系统只有一个相对“完美”的优化方法。海量数据库系统的优化也是一个需要积累的工作。
  参考文献:
  [1]滕永昌.0racle9i数据库管理员使用大全[M].清华大学出版社,2004,3:1
  [2]盖国强,冯春培,叶梁,冯大辉.Oracle数据库性能优化[M].人民邮电出版社,2005,6:1
  [3]Matthew Hart,scot Jesse.Oracle Database 109 High Availability with Racy,Flashback&Data Guard.清华大学出版社,2005,5:1
  [4]Richard J.Niemen.Oracle 9i Performance Tuning Tips&Techniques.清华大学出版社,2004,3:1
  [5]龚涛等.Oracle 10G数据库管理[M].中国水利水电出版社,2005,6:1
  

转载注明来源:https://www.xzbu.com/8/view-8725823.htm