基于Oracle9i数据库系统性能优化

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:hanson117
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在Oracle的性能优化对业务数据库工作在最佳状态具有重要意义,通过对Oracle采用调整内存、磁盘输入输出和命中率等方法z进行优化过程进行探讨,得到比较满意的结果。
  关键词:Oracle数据库;性能优化;内存调整;磁盘I/O调整;调整竞争
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)12-21504-02
  
  Based on Oracle9i Database System Performance Optimization
  
  ZHU Qing
  (Anhui hospitals clinics, Hefei 230001,China)
  Abstract:Oracle in the performance optimization of the database business in the best condition of great significance. Through the use of Oracle adjustment memory, disk input and output hits and z methods for optimization process to explore, to be quite satisfied with the results.
  Key words:Oracle database; Performance optimization; Memory adjustments; Disk I / O adjustment; Competition adjustment
  
  1 引言
  
  目前在我国,Oracle是跨应用平台最多、应用行业范围最广的数据库管理系统。其跨平台体现在支持多种硬件平台,比如个人电脑Intel体系架构和IBM小型机Power体系架构以及Sun小型机Sparc体系架构等,跨越的操作系统包括微软Windows系列、IBM AIX 4/5系列、Linux 系列以及HP-UX 10/11和Sun Solaris 10等平台。就行业范围应用来说,Oracle以其先进的数据庫引擎和开发工具技术占领了诸如政府、医疗、金融、保险、证券、教育、电信等多个核心应用的底层数据库市场。
  对于数据库管理员来说,发挥Oracle的强大特性为核心业务服务,切实增加高性能的最直接的方法就是Oracle性能优化。在优化性能的过程中可以就性能问题采用大量的参数调整和技术。性能优化主要分为两部分:一是数据库管理员通过对系统参数的调整达到优化的目的;二是开发人员通过对应用程序的优化达到调整的目的。在此,仅就系统参数的调整进行探讨,而不涉及应用程序的优化。
  
  2 调整内存分配
  
  系统全局区(SGA)是一个分配给ORACLE 包含ORACLE 数据库实例控制信息的内存段。SGA的大小对系统性能的影响极大,其缺省参数设置只适用于配置很低的计算机,不适应现在大多数业务系统的需要。这些参数若不作调整,会对系统资源造成巨大浪费。就某医院信息管理系统HIS的IBM p570而言,其内存16G中SGA的大小以13G左右为宜,剩下的3G内存提供操作系统以及其他的非数据库应用。
  比如下面操作系统监控中,绿色框内的就是内存大致分配情况。
  #topas
  
  图1
  初始化参数文件中的一些参数对SGA的大小有决定性的影响。参数DB_BLOCK_BUFFERS(SGA中存储区高速缓存的缓冲区数目),参数SHARED_POOL_SIZE(分配给共享SQL区的字节数),是SGA大小的主要影响者。
  DB_BLOCK_BUFFERS参数是SGA大小和数据库性能的最重要的决定因素。该值较高,可以提高系统的命中率,减少I/O。每个缓冲区的大小等于参数DB_BLOCK_SIZE的大小。ORACLE数据库块以字节表示大小。以HIS为例,其采用了8G内存为DB_BLOCK_BUFFERS。
  Oracle SGA共享池部分由库高速缓存、字典高速缓存及其他一些用户和服务器会话信息组成,共享池是最大的消耗成分。调整SGA区各个结构的大小,可以极大地提高系统的性能。以HIS为例,其采用了800M内存为SHARED_POOL_SIZE。
  (1)调整Library Cache
  库高速缓存(Library Cache)中包含私用和共享SQL区和PL/SQL区。调整SGA的重要问题是确保库高速缓存足够大,以使ORACLE能在共享池中保持分析和执行语句,提高语句分析和执行效率,降低资源消耗。通过比较Library Cache的命中率来决定它的大小。查询V$LIBRARYCACHE 数据字典视图(其中,pins表示高速缓存命中率,reloads表示高速缓存失败)
  SQL>SELECT SUM(pins),SUM(reloads) FROM v$librarycache;
  如果sum(reload)/sum(pins)≈0,说明Library Cache的命中率比较合适,若大于1,则需要增加共享池(SHARED-POOL-SIZE)的大小(在初始化参数文件中)。
  (2)调整数据字典高速缓存(Dictionary Cache)
  数据字典高速缓存包括了有关数据库的结构、用户、实体信息等。数据字典的命中率对系统有很大的影响。命中率的计算中,getmisses 表示失败次数,gets表示成功次数。
  查询V$ROWCACHE表:
  SQL>SELECT (1-(SUM(getmisses)/(SUM(gets)+SUM(getmisses))))*100
  FROM v$rowcache;
  如果该值大于90%,说明命中率合适。否则,应增大共享池的大小。 在数据库运行的任何阶段(mount或者open)状态下,都可以手动清除其内容,如下操作:
  $ sqlplus '/ as sysdba'
  SQL*Plus: Release 9.2.0.1.0 - Production on Fri Jun 22 16:53:51 2007
  Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.
  Connected to:
  Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit Production
  With the Partitioning, OLAP and Oracle Data Mining options
  JServer Release 9.2.0.1.0 - Production
  SQL> alter system flush shared_pool;
  System altered.
  SQL>
  可以用Toad8.53的DBA监控工具看到其变化:
  
  图2
  (3)调整数据库缓冲区高速缓存   Oracle 在运行期间向数据库高速缓存读写数据,高速缓存命中表示信息已在内存中,高速缓存失败意味着ORACLE必需进行磁盘I/O。保持高速缓存失败率最小的关键是确保高速缓存的大小。初始化参数DB-BLOCK-BUFFERS控制数据库缓冲区高速缓存的大小。可通过查询V$SYSSTAT命中率,以确定是否应当增加DB-BLOCK-BUFFERS的值。
  SQL>SELECT name,value
  FROM V$SYSSTAT
  WHERE name =any ('dbblock gets','consistent gets','physical reads'); 查询结果命中率等于
  1-physical reads/(dbblock gets+consistent gets)
  如果命中率<0.6~0.7,则应增大DB_BLOCK_BUFFERS。
  
  3 调整磁盘I/O
  
  磁盘I/O是系统性能的瓶颈,解决好磁盘I/O,可明显提高性能。通过查询V$FILESTAT可以知道每个物理文件的使用频率(phyrds表示每个数据文件读的次数,phywrts表示每个数据文件写的次数)
  SQL>SELECT name,phyrds,phywrts
  FROM v$datafile df,v$filestat fs
  WHERE df.file# =fs.file#;
  对于使用频率较高的物理文件,可以采用以下策略:
  (1)将I/O尽可能平均分配在尽可能多的磁盘上,比如使用Raid5。
  (2)为表和索引建立不同的表空间。
  (3)将数据文件与重做日志文件以及归档日志文件分别放置在不同的磁盘上。
  (4)減少不经过文件系统的磁盘I/O,比如使用裸设备。
  比如表空间对应的数据文件的磁盘条带化如下:
  #prtconf | grep hdisk
  
  4 调整竞争
  
  当多个进程对相同的资源发出申请时,产生竞争。
  (1)修改process参数
  该参数定义可以同时连接到oracle数据库的最大进程数,缺省值为50。注意,oracle的后台进程也包括在此数目中,建议将该值改为150至200,目前许多三层架构的应用,其连接数的控制一般有中间件配置,所以,此值不宜过大。
  (2)减少调度进程的竞争
  减少调度进程的竞争,通过查询v$dispatcher表来判定调度进程的竞争
  SQL>SELECT network,sum(busy)/sum(busy)+sum(idle)
  FROM v$dispatcher
  GROUP BY network;
  如果某种协议忙比率超过50%,应增加MTS-DISPATCHERS的值。
  (3)减少多线程服务进程竞争
  首先查询V$SYSSTAT表判定是否发生多线程服务进程竞争:
  SQL>SELECT DECODE(totalq,0,'No request',wait/totalq||'hunderths of seconds')
  FROM v$sysstat
  WHERE type='common';
  如果共享服务进程数量已达到初始化参数文件中MTS_MAX_SERVERS指定的最大值,但应用运行时,平均请求等待时间仍持续增长,那么,应加大MTS_MAX_SERVERS的值。
  (4)减少重做日志缓冲区竞争
  通过查询V$SYSSTAT表判定redo log 文件缓冲区是否足够。
  SQL>SELECT name,value
  FROM v$sysstat
  WHERE name='redo log space request';
  此处value的值应接近于0,否则,应增大初始化参数文件的LOG_BUFFERS的值。
  (5)减少回退段竞争
  回退段对性能有影响,根据事物大小来分配合适的回退段。
  首先判定回退段的数量能否满足系统运行的需要:
  查询V$WAITSTAT表与V$SYSSTAT表
  SQL>SELECT class,count
  FROM v$waitstat
  WHERE class
  IN ('system undo header','system undo block','undo header','undo block');
  SQL>SELECT sum(value)
  FROM v$sysstat
  WHERE name IN ('db block gets','consistent gets');
  如果任何一个class/sum(value)>;10%,那么考虑增加回退段。回退段的数量一般按如下规律设定:
  用户数回退段个数
  n<16
  4
  16 32<=n
  n/4 但不超过50
  (6)减少Free List竞争
  当多个进程同时向一个表中插入数据时,产生Free List竞争。
  SQL>SELECT class,count
  FROM v$waitstat
  WHERE class='free list';
  SQL>SELECT sum(value)
  FROM v$sysstat
  WHERE name IN ('db block gets','consistent gets');
  如果class/sum(value)>;1%,则应增加该表的Free List 的值。
  
  参考文献:
  [1]Rick Greenwald,Robert Stackowiak,Jonathan Stern,著,林琪,谢剑薇,译.Oracle精髓:Oracle9i,Oracle8i & Oracle8(第2版)[M],2002,392.
  [2]David C. Kreines,Brian Laskey ,著,张玉英,译,张奕,审校.Oracle数据库管理[M],2003,600.
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
为了避免QQ聊天记录“惹祸”,防止别人在自己离开后窥视自己的聊天信息,最好方法就是在聊天后删除或加密所有聊天记录。给聊天记录加“锁”有三种方法:一是手动清除,在资源管理器中找到QQ号码所在的文件夹,如\pmgram Fules\Tencent\QQ\(QQ号码)\,删除其中的Msgex.db,就将整个聊天记录都清除掉。如果只清除与某个网友的聊天记录。可在登录QQ的情况下,打开消息管理器,点这个网友
期刊
快车(FlashGet)是互联网上最流行、使用人数最多的一款下载软件。目前推出了最新版——FlashGet1.82.1003简体中文版,它采用多服务器超线程技术、全面支持多种协议,具有优秀的文件管理功能。除此之外,它还具有安全1+1功能。    1、防备流氓软件  在网上流氓软件满天飞的今天,快车具有全球首创的下载安全监测技术SDT(Smart Detectl nq Tech—n010gy),在下
期刊
家能带给你温馨的感受,家能让你有一处独自思考空间,家既能如火焰般热情而温暖,又能如晚风般舒心与凉爽,其实每个人的家就是一处仙境,它就是让每颗心靠岸的港湾。《完美世界》的家园就是每个玩家的仙境与心灵港湾,打理好你的私藏空间,你将开启一段如梦如幻犹如仙境般的游戏新生活。    ·家园区域·    《完美世界》的家园系统分为三大区域,即绿野仙踪、南国一梦、平湖秋月,在这三大家园区域上,又分别分布着多个小
期刊
BT这两个字,这两年以来已经绝对不会陌生了。这种P2P的“草根”下载方式,一方面板大扩充了资源的数量和下载速度,另一方面也伴随着“不可靠”性:由于BT资源从种子制作和发布,到上传下载,几乎都是由个人完成的,自然不可避免有一些别具用心的人会将病毒和木马嵌在资源里,将BT下载作为一种散布病毒的途径。  这么可怕,那我就不用BT了?这种恐慌也未免有些“因噎废食”了,其实并不难,只需做好防毒预案,既可享受
期刊
摘要:物流系统中,配送中心作为物流中心的一种主要形式,以其专业的服务、规范的操作、及时、准确的配送以及费用低廉、规模优化、库存调节等优势而显得日益重要。因此,开发仓储配送系统对于建立整个物流信息系统,解决物流企业当前急需解决的问题具有非常重要的现实意义。本文就如何建设企业配送中心信息系统进行了讨论,提出了一种适合一般企业配送中心信息系统的构建思路。并在此基础上设计实现了一个基于J2EE的从事货物运
期刊
摘要:本文就ASP.Net中数据导出至Excel的实现方法进行讨论,然后提出一个通用的数据导出类。该类以函数的形式提供数据导出功能,且易扩展,可以很方便地复用。  关键词:数据导出;数据网格控件;网格视图控件  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21483-01    Study on Exporting Data to Excel in ASP.N
期刊
副本历来是《完美国际》玩家挑战自我、战胜自我的重要游戏区域,而黄昏圣殿副本的开放,无疑为喜爱副本的玩家,再次提供了一处更新鲜更刺激的探险场所,而这个副本所具有的新型体验方式,更是让不同等级不同职业的玩家,感受到了一个前所未有的完美动态副本。    动态副本多变化    (1)副本区域多变化、区域难度可设置  黄昏圣殿副本区别于以住所有副本最根本的特性,就是它的多样性与动态化。黄昏圣殿中的副本分为三
期刊
摘要:通过对JSP技术的特点与工作机制的介绍,从Web服务器安全、JSP脚本编程、数据库安全和访问权限等几方面分析研究了基于JSP技术的Web应用程序开发所存在的安全问题,并探讨了基于JSP技术的Web开发时应采取的安全措施。  关键词:JSP;Web网站;Web服务器;安全  中图分类号:TP309文献标识码:A 文章编号:1009-3044(2007)12-21562-02    Securi
期刊
摘要:网络漏洞扫描工具已经成为安全管理员的必备工具。本文针对当前网络漏洞扫描工具的不足,设计和实现了一种适合安全管理员使用的基于Web的网络漏洞扫描系统。  关键词:网络安全;Nessus;漏洞扫描;Web  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21575-03    Design and Implementation of Network Vulne
期刊
摘要:本文简述了ATM技术的基本原理及其发展情况,还介绍了ATM技术在现代通信中的应用。提出了商务移动通信ATM网络。商务移动通信ATM网络是为了使ATM网络技术能够应用于商业领域,使之成为可能是依靠ATM技术高速分组交换技术,不仅如此,ATM还可以允许建立一对多连接。ATM技术可作为支持多媒体应用和服务器访问平台以及主干网络技术的最佳选择。  关键词:ATM网络技術;ATM商务移动通信网络;AT
期刊