您好, 访客   登录/注册

基于windows平台的oracle数据库优化策略研究

来源:用户上传      作者: 刘峰

   摘要:甲骨文公司开发的ORACLE数据库是一款关系数据库管理系统,在数据库市场上占有主要份额,其应用十分广泛。本文以数据库性能优化为出发点,基于WINDOWS平台,从系统、网络、数据库等方面,对ORACLE数据库的优化进行了探讨,提出了有效的优化策略。
   关键词:ORACLE数据库;性能优化;WINDOWS平台;系统参数
   中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2011) 23-0000-01
   Oracle Database Optimization Strategy Research on Windows Platform
   Liu Feng
   (CNPC,Chuanqing Drilling Changqing Drilling Company Information and Records Management Center,Xi'an 710018,China)
   Abstract:Oracle ORACLE database development is a relational database management system,the database holds a major share of the market,it is widely used.In this paper,database performance optimization as a starting point,based on the WINDOWS platform,from the system,network,database,etc.,on the ORACLE database optimization are discussed and put forward an effective optimization strategy.
   Keywords:ORACLE database;Performance optimization;WINDOWS platform;System parameters
   Oracle是甲骨文公司开发的一款关系型数据库管理系统,被广泛应用于各个领域。但是,随着计算机技术和网络技术的深入发展,尤其是电子商务以及电子办公系统的广泛应用,各企业、各站点的数据库规模也越来越大,数据库系统性能越来越受人们所关注。Windows系统作为Internet应用程序的主流平台,Oracle数据库与Windows平台形成了高级服务集成体系,因此,基于Windows平台的Oracle数据库优化显得尤为重要。下面,本文从系统设计和系统运行两个阶段,对基于Windows平台的Oracle数据库优化策略进行探讨。
   一、Oracle数据库设计阶段的优化策略
   Oracle数据库优化的基本目的,是以有限的计算机系统资源,在保证客户响应速度和服务质量的前提下,为更多用户服务。因此,优化不能只局限于数据库的运行过程中,还应当深入渗透到Oracle数据库的开发设计阶段。总的来说,在构建数据库系统时需要考虑的有数据块的存储形式、SQL语句的编写、硬盘I/O特征等。通过对数据库逻辑结构和物理结构进行优化,使数据库的性能在系统开销最小的情况下达到最佳状态。
   (一)优化磁盘I/O。优化磁盘I/O的目的是为了实现磁盘间的I/O负载均衡,因此,在构建数据库系统时,可以采用将数据文个把放在不同硬盘上的办法,实现分布I/O的目的来减少数据读取和录入的磁盘竞争。在优化时,可以将数据文件同redo log文件分开、表和索引分开,为其指定不同的表空间。对于用户表空间和系统表空间,可以分设不同的磁盘,并建立回滚段专用表空间,减少同oracle数据库系统无关的磁盘I/O,防止因空间竞争而影响用户服务需求的响应速度。
   (二)数据块的存储形式。在创建数据库实体时,如表、回滚段等,数据库会为这些数据库实体分配空间,这些空间被称为段。由于在数据库的应用过程中,其数据量的增长往往是非常迅速的,一旦数据量超出了所分配的表空间范围,oracle就会扩展该段,这种动态扩展将会降低整个系统的性能。为此,在架构基于windows平台的oracle数据库时,可以采用Oracle数据库的分区功能,为相应的数据实体确定分区的最大大小,使Oracel在创建数据实体时能够分配足够容量的分区,可装入所有的数据。
   此外,由于数据库的大小在构建完成之后就不能再修改了,为了减少迁移和链接,可以使用ANALYZE来收集迁移和链接的信息,如果当出现许多迁移和链接行时,必须进行消除。消除时,可创建和原表相同列的中间表,保存迁移和链接行,从原表中将迁移和链接行删除,再将中间表中的行插入到原表中,再删除掉中间表,即可实现迁移和链接行的消除。
   (三)SQL语句的编写。SQL语句是数据库实现读取、存储、分析等功能的基础,用户需求的响应最终都归结为数据库中SQL语句的执行,优化SQL语句可以减少数据库分析时间,提高访问速度,加快执行效率。可以说,SQL语句的执行效率,从根本上决定了oracle数据库的性能。在对基于windows平台的oracle数据库进行优化时,可以采用Oracle公司所推荐的Oracle语句优化器和行锁管理器,来对加构数据库系统的SQL语句进行调整和优化。从而使SQL语句的执行效率更高,数据库的响应速度更快。
   二、Oracle数据库运行阶段的优化策略
   在Oracle数据库的运行阶段,要对其进行优化,总的来说包括操作系统平台优化和数据库系统优化两个方面。
   (一)Windows操作系统优化。基于windows平台的oracle数据库优化,在其运行阶段,对windows操作系统进行优化主要是为了优化其内存分配,可以采用减少内存交换、控制分页数量、建立SGA可驻留机制等方法进行。
   要减少内存交换,操作系统在运行中,要避免不必要的系统daemon进行和应用程序进程的运行,并注意减少缓冲区内文件的数量,释放内存。控制分页数量主要是为了减少分页数量,以免分页过多使平台性能下降。SGA常驻内存,可以建立数据库快速访问的系统全局区,实现数据库数据的快速访问。
   (二)oracle数据库系统优化。在运行阶段,对Oracle数据库进行优化,主要包括提升SGA分配及使用效率、减少资源竞争两大类方法。
   在数据库运行阶段,SGA分配及使用效率如何,极大的影响了整个数据库的性能。在优化SGA分配及使用效率时,需要从SGA共享池、数据块缓冲区、重做日志缓冲区、大池四个部分入手进行。共享池存储着共享SQL、数据库对象信息,这些信息在客户服务响应时会经常被访问,需要保持较高的命中率。可以用下列SQL语句查看数据块命中率:
   Select 1-(phy.value/(cur.value+con.value)) from v$sysstat cur,v$sysstat con,v$sysstat phy where cur.name=’db block gets’ and con.name=’consistent gets’ and d phy.name=’physical gets’
   如果检查所得命中率小于0.85,说明数据块命中率过低,需要考虑为数据块分配更多的内存作为缓冲区。
   三、结束语
   基于windows平台的oracle数据库的优化相当重要,但也相当复杂,在优化过程中,需要数据库设计人员和管理人员从数据库设计、运行两个阶段,从SQL语言、内存分配、磁盘管理等多个方面入手进行优化,才能保证oracle高效、可靠的运行。
   参考文献:
   [1]童家旺,胡怡文,冯大辉译.ORACLE性能诊断艺术[M].人民邮电出版社,2009,10
   [2]刘宪军.ORACLE数据库管理员指南[M].机械工业出版社,2010,8
   [3]龚波,张平,潘显俊译.ORACLE数据库最佳实践[M].机械工业出版社,2009,3
   [4]盖国强.循序渐近ORACLE数据库管理,优化与备份恢复[M].人民邮电出版社,2011,7


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