您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页Oracle数据库性能优化实践应用分析——以某城市商业银行财务系统为例

Oracle数据库性能优化实践应用分析——以某城市商业银行财务系统为例

来源:华佗养生网
2017年・第l期 栏目编辑梁丽雯E—mail:liven一01@1 63 corn 旦!苎!苎! !Ll翻  l O racle数据库性能优化实践应用分析 某城I市商业银行财务系统为例 ■中国人民银行赣州市中心支行童奕媛 赣州银行 杨林 摘要t Oracle数据库是最常用的数据库之~,其运行性能对应用系统有重要影响,本文介绍7"Oracle数据 库性能优化的目标是增加吞吐量、缩短响应时间,并总结了实现目标的3种方法——调整内存分配、调整磁盘I/0、 优化SQL语句。最后,结合某城市商业银行财务系统数据库Et常管理与实践经验,对O racle数据库优化进行分析 与探讨。 关键词t Oracle数据库:性能优化:财务系统 一,前言 随着信息技术的不断发展,数据库技术已逐渐成 的整个运行周期。本文不考虑应用系统设计和开发阶 段,只从数据库管理员角度对数据库性能优化进行实 践探索。 为计算机信息系统和应用系统的基础和核心。Oracle 数据库是目前最流行的C/S体系结构的数据库之一, 它是以高级结构化查询语言(SQL)为基础的大型关 =,Oracl e数据库性能优化简介 (一)性能优化的目标 数据库性能降低主要是由系统未运行在最佳状 系数据库管理技术,能在所有主流操作系统平台上运 行。Oracle数据库越来越受到用户的喜爱,用户对其性 能的要求也不断提高,如何优化Oracle数据库性能,提 升资源使用效率,进而加快应用系统的运行速度,提 态、参数配置不当、数据库设计存在缺陷、数据库功 能发生变化、数据量规模不断扩大等原因引起。数 据库性能优化的目标是为了增加吞吐量,缩短响应时 间。吞吐量是单位时间内系统完成的工作量,越大越 高事务处理的吞吐量,保障应用系统安全高效运行是 业界需要不断研究的问题。在应用系统设计和开发阶 段就应该考虑数据库性能优化问题,并始终贯穿系统 好,而响应时间是系统对用户请求的反应时间,越小 作者简介:童奕媛(1986一),女,江西鄱阳人,工程师。 杨林(1982-),男,江西武宁人,工程师。 收稿日期:2016—09—29 垃 科拉嗜,弋I 31 一Resea rchI技术应用 2017年・第1期 栏目编辑-梁丽雯E-mail:liven一01@163 corn 越好。 V¥SGASTAT,查看SGA结构,将flee nlelIlory作为参考 性指标,当指标大于2()%时,将共享池大小分配小点, 在系统可用资源不变的前提下,吞吐量的增加必 然会造成响应时间的延长。随着响应时间的延长,吞 吐量也将受到,因此,吞吐量和响应时间相互 影响和制约。明确优化目标,采用合适的性能优化策 略,从而对数据库性能进行优化,从而达到最好的优 化效果。 给其他部分分配多点;当指标小于8%时,将共享池大 小分配大点。 (3)Logbuffer —为了减少LGwR和DBwR冲突,大型数据库的 log_buffer一般都须手动调大些,一般为2 M-3 M。通 (二)性能优化的方法 1.调整内存分配 过查询VYSYSSTAT视图中redo log space requests,如 果大于0就应该增加1og_buffer自勺值。 2.调整磁盘I/O Oracle内存结构由3部分组成,分别是系统全局区 SGA、进程全局区PGA、用户全局区uGA。SGA是分配 磁盘I/O是Oracle数据库中的性能瓶颈,优化磁 给Oracle的共享内存段,主要由共享池、数据高速缓冲 区和日志缓冲区组成。SGA的缺参数配置容易造成系 盘I/O可明显提高系统性能。通过查询v¥FILEsTAT 可以查看每个物理文件的使用频率(phyrds表示每个 统资源的浪费,数据库管理员需要根据数据库运行情 况调整SGA中的共享池、数据高速缓冲区和目志缓冲 区的大小,通过合理配置内存资源,达到提高高速缓 存的性能,降{ ̄SQL语句解析时间,减少物理磁盘读 写次数的效果。 数据文件读的次数,phywrts表示每个数据文件写的次 数)。 I f (’I 11 1P,IC.】、l1、 、, L11、.\S{‘ilc r.11 l \\\1 i、l:i ( 1\s L1 1f.1ti1 L’ …L f : l i} lZ i L11 filc 如果使用频率较高,可以考虑调整数据存储效 率、减少redo log buffer竞争和采用分区等方法。比如 通过配置init.ora文件中的环境参数,所有的环境 参数都可以通过系统的监控工具来分析是否适宜。对 Oracle影响较大的参数有很 多,这里列举几个。 (1)db—block—size 将I/O尽可能平均分配在尽可能多的磁盘上、为表和索 数据库中每个数据块 的大小,默认是2 048字节 (2k),一般应该增大到4k 和8 k,大型数据库也常使用 16 k和32 k,通常sGA也应该 增加。 (2)Shared—pool—size 共享池大小是否合 适,可以通过对数据库 的监控判断,也可以通过 SQL语句判断。通过查询 32 I 肚科技峙,弋 2017年・第1期 栏鞠编辑粱丽雯E—mai{:liven 01@163 corn 引建立不同的表空间、将数据文件与重做日志文件分 离在不同的磁盘上、减少不经Oracle SERVER的磁盘 单独执行时的性能。 I/O。有条件可以将数据存放到高性能的分层存储或 全闪盘阵列上。 3.优化SQLI ̄句 三.在实践中的应用实例分析 (一)财务系统运行环境 该银行财务系统使用的数据库系统环境如下: 主机:IBM P740 SQL语句的执行效率决定了数据库的性能。SQL 语句的修改和重写都要以占用更少CPU或磁盘I/O等 资源为目标。SQL语句优化主要包括优化器、索弓1、性 能分析工具等。 (1)优化器 存储:EMC CX4—480 操作系统:AIX 6.i 数据库版本:ORACLE 11.2.4 (二)财务系统性能瓶颈 财务系统在使用过程中主要存在3个比较突出的 性能问题:一是每天的报表处理时间过长,处理时间 从凌晨3点至中午12点,经常耗时超过lOlJxH ̄;二是每 季度的总账处理时间过长,其中年终结算当天耗H,Q1/J\ 时8分钟;三是每天核心流水处理时间长,处理时间从 每天凌晨2点至2点半左右。 (三)系统性能检测分析与优化 对财务系统、数据库系统进行整体性能诊断,通 过监控平台查询财务系统数据库某一天的CPU使用 情况(如图1所示)。 Oracle优化器分别有基于成本(COSt)、基于规则 (rule)和选择性(choose)模式,当使用基于成本的优 化器时,需要定期更新统计信息,确保数据库中的对 象统计信息的准确性;当使用选择性模式,如果表已 经被分析过,优化器模式将自动选为基于成本的优化 器,否则将选为基于规则的优化器。 (2)索引 使用索引的原则主要有:一是针对经常访问的表 和数据量不大的参数表使用索弓1;二是对大表使用索 弓1,一定要使用选择性高的索引,同时要控制索引的大 小,或者使用分区,从而提高对大表的查询效率。 (3)性能分析工具 Oracle性能分析工具主要有statspack,ASH, AWR,Oracle Explain Plan等。通过分析工具能够找出 影响性能最高的SQL语句,从而调整SQL来提高SQL 从图1可以看出,在主机层面上CPU使用率并不 高,在凌晨这段时间基本处于10% ̄20%之间。从数据 库层面上进行分析,分别针对以上3个性能问题时间 段生成Oracle AwR报告进行分析,发现性能严重的 语句 - ● . - -一i . I ..— I J ^. - 1I'’l^,WU , l ^ ...▲^M I蛐 /I 朋 f I fl I l-I^^.仃Ⅱ一l IJIl■ⅣI JⅡ ,v-I. _.- ^・I I▲^I Y’--’I’ ’F-、-U Il 几,、 ● ’ ^.^^I frL. 一.▲ ^●J, lL, 1『Ur,y r’’.' 。-, ’I l I 一 —l J,-\~J,■拿 ’W ——JU —W■ .^;g鏊 试 长 0々一,-I m 叶{金=景荽誊葛 占 一 畸.^ ■ ■ 卜 图1 财务数据库CPU使用情况 垃 科技咕代I 33 2017年・第1期 栏目编辑梁丽雯E—mail:lvierl__o1@163 com 1.报表处理时间过长问题 经过分析发现,在报表处理的时间段内,众多性 能语句都与表IUFO用户下的表iufo—measure—pubdata 有关,出现该问题主要有两方面原因:一是该表数据 量高达4 776万,并且未做分区表;二是该表索引设计不 合理。 ktype不一样的值较少,将其删除: create unique index INDEXMEASUR EM1 0I1 1UFO— t’UBDATA(CODE,KTY PE VER —INPUTDATE,F【)RMULAII),KEYWORD1, KEYWoRD 2,KEYWORD3,KEYWORD 4, KEYWORI)5,KEYWORI)6,KEYWORD7, 优化方法:一是由于该表数据量大、按月不断增 长,并且历史数据基本保持不变,建议将表设计成按 月分区的表,或者定期对历史数据进行归档,将历史 数据转移到归档表,查询时从归档表查询;二是调整 表索引,具体修改操作如下: cFeate index IDXMEASUR EKEYWORD8,KEYWOR1)9.KEYWORDl()); 包含15个列且还是唯一索引,在数据插入、变更、 删除时都将耗费大量的时间用于维护索引。一般情况 下索引最多不要超过4个列,建议将此索引调整为普通 索引,修改为: —MEA—PUBDATA OD IUFO— create i11dex I N I)EXM1’on iufo—nlca SUre— 1 U1319ATA(( O1)E,TIME—COI)E, —pubd ata(KEYWOP.D3,code,ktype)table space nnc—— index{}l parallel 8: alter table IUFOconstraint PKIUFOKTYPE,VER,FORMULAID,ALC}NE1D); 一此索引包含主键 ̄IjALONE—ID,且放在了索引的 最后,修改为: create index IDXMEASURE——MEASUREt’UBDATA add —————MEAPU13DATA primary key MEAPUBDATA OI1 IUFO—— (ALONE—I1)): PUBDATA(TIME—CO1.)E,KTYPE); —2.季度总账处理时间过长问题 c re ate i11d ex 11)Xon IU FoPUBMEASU1 DATE 经过分析发现,年终结算时季度总账处理时间段 内性能问题严重的语句为: select a.★,b.dueanlt from tlllpa—fI1xaccrtle a left —M EA SURE—PUBDATA(KTY1 E, 1 N 1 UTDATE); ktype不一样的值较少,修改为: c r e a t e i I1 d e x 1 D Xo1.117{_'1 join v—till—accdata b on a.validbillid I].taxbillid \vhere pk—一 P U B M E A S U Rtaxorg=’()()n1ZD1()f)【】()【)【)()()5LJQ4’and 1)A T E o I1 i u f on1 e a s u r e——P Ll b d a t a tax—period ’20 14—1 2’ (1NPuTDATE.KEYWOR1)4,KEYWORI)3): c reate index Il_)XOll IUFO—该语句主要有两方面问题:一是语句未使用绑定 变量,而是直接带入值进行查询,导致不能从数据库 层面来控制改语句的执行计划且造成大量硬解析影 PUBMEASUR—IDCO1)E MEASU1 E—PUBDATA(ALONE—ID, (:()J:)E1: 响性能,需要开发人员修改程序;二是视图里涉及的 表tm—pa—taxbil—b,tm—pa—taxbil,tm—pa—taxaccrue缺 一 已有主键ALoNE—ID,此索引多余,将其删除: c rc ate i11dex INDEXM EASUR E—FK1 24 oi1 IU F0乏有效索引,需要新增索引,修改如下: create index idx——I UB1)ATA(CO1)E); tnl—pa—taxbilb2 Oll tl11pa— —一code不一样的值较少,将其删除: c17e atc ind ex 1 N 1)EXtaxbil (PK_TAXBIL)tablespace nnc—index{ ̄1; — FK 1 2 5 on I UFOcreate index idx—tn1pa—taxbil1 O12 tn]pa— ~MEASURE PUB】)ATA(KTYPE1: taxbil(pk——tax)tablespace llllC——index{E; 34 l垃肚¨技暗 2017年-第1期 栏目编辑粱丽雯E—mail:liven 01@163 com Researchl技术应用 一一~~一  础一一 一一~ 一 一~一 一一一~一 一一~ 一一 而凭证表目前已有45.775条数据,每插入_条凭证 就要更新45.7万条的数据,如果一次导入1 000条凭证, 则要更新1 000次,共4.5亿条的数据量,而实际上也许 只需要更新1 000条就足够了,可见做了大量的无用功, 耗费大量资源。因此,核心流水导入慢的问题为程序 设计存在问题,需要开发人员进行修改。 四,小结 Oracle数据库的特点在于数据处理量很大,并发 程度很高,在日常使用过程中经常有上百个并发用户 连接数据库进行操作。数据库性能的高低直接影响应 用系统的高效性和高可用性。数据库性能优化涉及面 广,除了本文涉及到的内存、磁盘I/0和SQL应用等方 面,还有网络、操作系统、中间件等多个方面.它是一 个系统化、多层次、周期性的优化过程,随着新的数据 库优化技术和工具层出不穷,在日常数据库维护工作 中,要结合具体问题具体分析,提出最优的数据摩}生能 『尤化方案逐步调整。衄 参考文献: [1]文平.Oracle数据库性能优化的艺术[M].北京: 机械工业出版社,2012. [2]李可可.浅析Oracle数据库的性能优化方法[J] 硅谷,2011(2):189. 垃 救崎 弋I 35 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务