ORACLE 10G自动化特性在联通BSS系统性能优化工作中的应用
- 格式:doc
- 大小:35.50 KB
- 文档页数:10
在线事务(OLTP)在线分析(OLAP)在Oracle数据库中,凡是分配了存储空间的,都称为段,所有段并不一定指的是表,也可能是表的一个分区,还可能是索引、大对象(LOB),或者IOT(索引表),物化视图等。
第1章引起数据库性能问题的因素系统设计包含:软件的设计;--软件系统架构的设计;--软件代码的编写;数据库的设计;--数据库的类型选择;--根据数据库类型的所有数据库对象的设计;硬件的设计。
--存储结构的设计;--硬件的性能选择;--冗余设计。
1.1 软件设计对数据库的影响1.1.1 软件架构设计对数据库性能的影响对于并发操作比较大的系统,在数据库之前建一个缓冲用户请求的中间件服务。
1.1.2 软件代码的编写对数据库性能的影响通常指的是应用程序代码中对数据库操作的代码部分对数据库产生的影响。
具体来讲就是SQL语句或是PL/SQL包。
SQL语句造成的影响:SQL语句本身在逻辑上就是效率低下的SQL语句没有绑定变量性能低下的SQL语句:使用Hint、不合适的外连接,谓词的隐含转换,优化器的选择、多表关联、数据的访问方式(索引还是全表扫描)以及表关联方式的选择(Hah Join,Nested Loops)1.1.2.1 人为地在SQL代码中加入Hint来约束SQL的执行计划SELECT /*+ index(t1 ind_t1) */ col1,col2 FROM t1 WHERE col1>..... AND col1<.....;1.1.2.2 不必要的外连接操作CREATE TABLE t1 AS SELECT ROWNUM a,ROWNUM+100 b FROM dba_users WHERE ROWNUM<10;CREATE TABLE t2 AS SELECT DECODE(MOD(ROWNUM,2),0,ROWNUM) c,ROWNUM+1000 d FROM dba_users WHERE ROWNUM<10;SELECT a,b,c,d FROM t1,t2 WHERE t1.a=t2.c(+);SELECT a,b,c,d FROM t1,t2 WHERE t1.a=t2.c(+) AND t2.d>1000;SELECT a,b,c,d FROM t1,t2 WHERE t1.a=t2.c AND t2.d>1000;1.1.2.3 CBO下优化器模式的选择通常对于一种功能单一的数据库来讲,在实例级设置一个优化器模式就可以了。
关于Oracle 10g数据库系统性能优化与调整的研究【摘要】当前Oracle数据库应用极为广泛,但是不断增加的数据量和访问量等因素导致数据库系统性能的降低,出现吞吐量降低、响应时间变长等相关的数据库性能问题,这就产生了对数据库系统的优化的需求。
如何对数据库系统进行优化和调整,才能获得更快的响应时间、更大的吞吐量、以及更少的资源占用呢?在本文中笔者就Oracle 10g数据库系统性能优化与调整进行了相关方面的研究。
【关键词】Oracle 10g数据库;系统性能;优化与调整;SQL语句优化1.前言IT系统随着支持用量的增长和新业务的不断扩展,数据处理量大量增加,业务处理模式日趋复杂,必然导致主机CPU和I/O占用不断呈线性增加。
因此,充分使用先用硬件的处理能力对于保护投资至关重要。
Oracle数据库是现在使用最广泛的大型数据库之一,对于规模较大、需要处理的用户数目较多的数据库系统来说工作效率是最重要的指标之一。
在实际应用中,不断增加的数据量和访问量都会导致数据库系统性能将会下降,这就产生了对数据库系统的优化的需求,以实现更快的响应时间、更大的吞吐量、以及更少的资源占用等。
2.影响数据库系统性能的因素在Oracle数据库的实际应用中,其系统性能主要受到数据库运行方面的因素如服务器性能、数据库配置、网络I/O、应用程序实现等因素的影响,各个因素的具体影响情况如表1所示。
表1 影响数据库系统性能的相关因素3.数据库系统性能优化与调整数据库系统的优化措施是通过有目的更改系统的一个或多个组件途径使其满足一个或多个目标的过程。
Oracle数据库的性能优化与调整应从影响系统性能的因素着手,实现对数据库的体系结构、软件结构、具体的业务和技术等方面的优化效果,使得数据库系统实现更快的响应时间、更大的吞吐量、以及更少的资源占用等性能。
2.1内存区调整与优化Oracle数据库实例的内存结构主要包括两个方面,分别为SGA和PGA。
Data Base Technique •数据库技术Electronic Technology & Software Engineering 电子技术与软件工程• 137【关键词】Oracle 数据库 应用系统 性能 优化技术在一般情况下,oraele 数据库应用系统是一个软件系统,解决了在一个特定领域的问题。
它的主要特点是,它是在处理事务效率。
据调查,50%的Oracle 数据库应用系统的性能问题是发生在设计过程中。
在数据库应用系统的设计过程中,发生在未来的业务处理特殊情况不能完全预测的,所以在系统运行一段时间后,一些性能问题才能被发现。
在本文中,ORAC数据库系统及其特点,绩效评价指标和优化策略进行了详细讨论。
1 Oracle数据库基本含义及特点1.1 Oracle数据库基本含义Oracle 数据库能够分析各数据间的关联性,然后生成反映这些数据的相关性的数据库。
Oracle 不仅可以直接应用于关系数据库的计算机系统,同时也为商业数据库管理系统提供完整的用户/服务设备的系统架构,也可以使用SQL * NET 软件层来实现与多个操作系统通信协议的融合;Oracle 关系数据库可以创造更多的分布条件为其它系统如金融系统服务,以实现单点与多点的查询。
在银行、保险、烟草业和其他数据平台,Oracle 数据库具备给这些平台以安全性、稳定性高的服务保障。
Oracle 数据库系统内存结构见图1。
1.2 Oracle数据库基本特点1.2.1 独立性Oracle 独立成一个系统,其包括大型系统中,介质系统、小型系统和微系统。
1.2.2 统一性该数据库减少数据争用,并确保数据的一Oracle 数据库应用系统的性能优化技术文/冯文堂致性。
1.2.3 安全性Oracle 数据库具有很高的安全性,数据的完整性能够防止数据漏洞,增强安全性。
Oracle 有许多功能,如识别、权限、角色、日志和备份等。
1.2.4 兼容性Oracle 数据库具有一定的兼容性,不仅可以在不同类型的系统进行操作,而且还可以在同一制造商的不同操作系统运行。
ORACLE 10g数据库性能优化与分析摘要:随着数据库在生活中各个领域中的广泛应用,数据库产品也层出不穷。
其中,oracle数据库产品在整个数据库产品的应用中占据50%,并且有不断上升的趋势。
可是,随着数据库数据量的增大、并发用户数量增多,系统常常出现吞吐量降低,响应时间延长等性能问题,怎样有效优化、改善数据库性能,突破系统瓶颈,是保证 oracle 数据库高效运行的基础。
oracle 数据库系统性能优化、调整是一项复杂的系统工程,贯穿于系统的整个生存周期中。
关键词:oracle数据库;性能优化;索引;sql语句中图分类号: tp311 文献标识码: a 文章编号:1009-3044(2013)13-2943-031 概述数据库优化不仅仅是dba(数据库管理员)的事情,它也是设计人员、应用开发人员必须做的事情。
有人认为,优化数据库不用着急,在系统出现宕机或者慢到无法忍受时再优化不迟。
但此时,往往无法有效的对相应的数据库进行更为有效的优化。
所以我们应当在整个数据库的生命周期中,给予不断地优化,以使数据库达到最好的性能[1]。
2 数据库系统性能评价指标2.1 系统吞吐量2.2 响应时间响应时间是,在用户提交任务要求到数据库做出回应的时间。
其实质就是,终端客户等待后台处理所花费的时间[2]。
因此响应时间优化的重要性不言而喻。
调查显示,当用户等待一项任务的响应时间超过几秒钟时,用户可能就会对此系统产生不满或者厌烦的情绪。
因此,我们必须通过优化,将响应时间降到最低。
2.3 数据库的命中率数据库命中率是数据库性能中非常重要的评价指标,包括数据库缓冲区命中率和共享池命中率。
缓冲区命中率是指用户需求的数据是否存放在在内存中,该命中率是指高速缓存命中总数除以高速缓存的查找总数;共享池命中率决定了用户提交的 sql语句是否需要进行重新解析,该比率等于 sql 语句的解析次数除以sql语句总的执行次数。
通常情况,数据库的命中率应该在 90%左右,低于这个值的系统均需要做出优化和调整[3]。
ORACLE 10G自动化特性在联通BSS系统性能优化工作中的应用摘要:在介绍Oracle 9i版本下性能优化的基本方法基础上,着重论述了Oracle 10g版本中的一些自动化特性,以及应用10g中的自动化特性进行数据库系统性能优化的方法和案例。
关键词:Oracle 自动化;10G 优化;ADDMOracle数据库是中国联通核心业务支撑系统中最主要的关系型数据库管理系统。
在联通BSS业务支撑系统的体系结构中,绝大多数的子系统都是典型的在线事务处理系统(OLTP系统),对业务处理的实时性和性能要求非常高。
基于以上情况,对Oralce数据库及BSS应用系统进行不断地性能调整和优化,就成为联通业务支撑工作中一个必不可少的关键性工作。
Oracle 10G中很多性能优化工作可以借助自动化的工具方便快捷地进行,使性能优化工作的效率和效果得以大幅提升。
1Oracle 9i环境下性能优化的典型方法和问题1.1Oracle 9i环境下典型的性能优化步骤通常情况下Oracle 9i环境下的性能优化工作的步骤如下:①用户或应用维护人员反馈:“某个应用场景下,系统反应很慢”;②数据库管理员(DBA)人工观测该应用是否确实比较慢,或者根据以往记录的性能测试数据来比较,确认该性能问题是否确实存在;③使用统计信息收集工具包-StatsPack包(以下简称SP 包),在可能会发生性能问题的时间段,进行性能统计信息搜集(即进行“snapshot快照”);④使用SP包,生成SP分析报告;⑤DBA阅读SP分析报告,结合自己的经验,手工在浩如烟海的信息中找到可能存在的性能瓶颈;⑥对于性能瓶颈,DBA结合自己的经验,手工设计优化方案;⑦DBA或应用系统开发人员,进行数据库配置、数据库对象或应用程序的调整;⑧调整完成后,再次进行性能表现的观测,如果问题没有得到解决,则再次从步骤三开始进行新一轮的过程,直至问题得以解决。
Oracle 9i时期典型的性能优化步骤的示意图如图1所示:图1Oracle9i时期典型的性能优化的步骤1.2Oracle 9i环境下性能优化方法存在的问题从上述步骤中可以明显看出,9i环境下的性能优化,均是DBA人工处理,所有的判断和决策都依靠人来开展,不仅非常耗时耗力,而且对进行优化工作的人员素质要求较高,对DBA 的“经验”要求极高,旺旺只有对业务较熟悉的DBA才能进行一些有效的优化工作。
2Oracle 10G的自动化特性介绍2.1Oracle 10G的自动化特性概述Oracle 10G在降低DBA工作强度和提高工作效率和质量方面做了很多改进:丰富了大量的ADVICE功能;新增了很多有用的自动化功能,如自动化数据库诊断监控(ADDM)、SharedPool内存自动管理(ASMM)、自动段管理(ASM)、优化器统计信息自动收集(AOSC)等。
2.2Oracle 10G部分实用的自动化特性介绍2.2.1自动数据库诊断监控ADDM自动数据库诊断监控(Automatic Database Diagnostic Monitor,后文简称ADDM)是10G自动化体系中最重要的一个部分。
简单的说,ADDM是对以前版本中SP包的增强,它在以前的SP包的基础上新增了如下特性:①自动后台执行快照:自动快照的最大好处是可以在出现性能问题后,不用担心已经错过了性能问题突发的时刻,可以不再等待问题重现;②更多的统计信息种类:ADDM快照所收集的信息比9i的SP包快照收集的信息种类多了很多,很显然,收集的统计信息的种类增多,对快速准确分析和解决性能问题极有好处;③增强分析报告的可读性:分析报告可读性的增强是ADDM技术中最吸引人眼球的一个进步:9i中SP报告的内容完全是一些统计数据,没有任何“该怎么做”的建议。
而在10G中,ADDM的报告的内容已经是Oracle 分析完成的“汇报材料”,里面包含了各类有益的、具备可操作性的建议。
2.2.2自动共享内存管理ASMM自动共享内存管理Automatic Shared Memory Management (后文简称ASMM)是对Oracle最重要的内存结构-SGA进行自动化管理的先进技术。
SGA包括DB CACHE、SHARED POOL、LARGE POOL、JA V A POOL等核心内存组件,而对各组件大小的调整一直是Oracle数据库性能调优的重要手段。
在之前版本中,需要DBA 根据经验来决定每个组件的的大小。
这种手工模式存在很大的弊端,一是非常非常麻烦,二是很难适应多变的应用场景。
在10G中,ASMM技术的引入,可以很好地解决以前的问题,DBA不需要再操心各组件之间的平衡,只需设置一个较大的SGA_TARGET参数即可,该参数指定了SGA的目标容量,Oracle的MMAN进程会自动在SGA总容量范围内进行各组件的尺寸调整。
下面这个应用场景的例子可以很好地说明ASMM作用:图2ASMM自动内存调整示意图大多数应用系统,都或多或少存在这样一种情况:白天营业期间,系统是典型的OLTP应用系统,需要很大的buffer cache,而到了夜晚,系统的特性又变得更像DSS应用系统,批量后台任务大大增加(如统计报表),这时需要更大的large pool。
ASMM可以很好地满足应用的需要:在SGA_TARGET 总量范围内,白天自动增加buffer cache、减少large pool,晚上则反过来,这样既很好地满足了白天需要大buffer cache以保证高性能I/O性能,又确保了晚上有足够的large pool用于支持大量的并行查询、大量排序。
2.2.3自动段管理建议ASA自动段管理建议Automatic Segment Advisor(后文简称ASA)也是10G新增的一个很有特色的自动化特性。
对段空间的管理Oracle一直使用高水位线方式管理(后文称HWM),这种管理机制的最大弊端之一是易产生碎片问题,导致空间利用率差和访问性能低。
在以往版本中,核查碎片问题需要DBA手工编写和执行一些脚本,并和熟悉应用的人员一起讨论以确认需发现碎片多的对象。
在10G中,ASA会每天自动运行一次,并对热对象(HOT OBJECT,即访问频率高的对象)段空间碎片情况予以检查,检查的结果会明确报告哪些段的碎片问题严重,并给出压缩的建议和脚本。
2.2.4SQL调优助手SQL Tuning Advisor在性能调优工作中,很多时候,最终的调整对象往往是某条具体的SQL语句,即通过对某些有性能问题的SQL语句调整来达到性能优化的目的。
在以往版本中,大多数情况下,需要由DBA或开发人员人工进行分析、调整、测试。
在10G中,对于SQL语句优化可以借助SQL Tunning Advisor进行,自动对疑似有性能问题的SQL语句进行分析,并获得优化的建议。
3Oracle 10G环境下性能优化的典型方法由于以ADDM为代表的多种自动化特性的存在,在10G 中对系统性能进行优化的步骤就相对地简化了许多,如图2所示。
步骤如下:①用户或应用维护人员反馈:“某个应用场景下,系统反应很慢”;②DBA确认该性能问题是否确实存在;③使用ADDM工具,直接对发生性能问题时间段内的快照进行分析;④阅读ADDM分析报告,报告中已经明确描述了哪里存在重要的性能瓶颈;⑤利用ADDM报告中建议的解决方案,再结合Segment advisor和SQL tunning advisor等工具,实施优化;⑥调整完成后,再次进行性能表现的观测,如果问题没有得到解决,则再次从步骤3开始进行新一轮的过程,直至问题得以解决。
4联通新一代BSS系统性能优化案例介绍下面是Oracle 10G自动化特性在新疆联通BSS系统上的一次性能优化的实际应用案例。
4.1接到性能问题投诉某日,应用系统管理员接到客服投诉,反映系统某新增功能操作非常慢,点击完“查询”按钮后,长时间系统没有响应。
图3Oracle 10Gj时期典型的性能优化的步骤4.2用ADDM核查性能问题DBA和应用系统管理员对该功能进行测试,发现性能问题确实存在。
恰好发生性能问题的数据库版本是10.2.0.4.0,DBA随即使用ADDM特性,针对最近2小时之内的统计快照,使用$Oracle_HOME/rdbms/admin/addmrpt脚本生成ADDM报告(下文简称《报告》)。
《报告》中,很明确报出了3类可能影响性能问题的重要因素:①部分segment可能存在不合理性,导致IO wait;②部分sql语句消耗了过多的时间和I/O wait;③SGA尺寸不合适,导致附加的I/O 或hard parses。
4.3根据ADDM的建议实施优化对于以上3类问题,《报告》也分别明确给出了建议的解决方案。
对于“segment不合理性问题“,ADDM建议用segment advisor进一步核查。
对于“部分SQL语句不够优化的问题”,ADDM建议用SQL Tuning Advisor进一步核查。
对于“SGA尺寸不合适的问题”,ADDM建议调整SGA_TARGET的大小。
4.3.1用segment advisor核查段不合理性问题以《报告》中反馈的JBPM_V ARIABLEINSTANCE表为例,概述segment advisor的用法:首先,依次执行dbms_advisor包的create_task、create_object、set_task_parameter和execute_task四个过程,用来运行一次segment advisor。
然后查看DBA_ADVISOR_RECOMMENDATIONS、DBA_ADVISOR_FINDINGS和DBA_ADVISOR_ACTIONS三个数据字典视图,即可看到相应的问题细节和解决方案细节。
本次核查的结果,确认TASKBILL_INCALL_INFO表需要进行空间回收并需要打开row movement属性,同时给出了具体的执行脚本。
4.3.2SQL Tuning Advisor核查SQL语句性能问题下面以《报告》中反馈的这条问题的sql语句为例,介绍SQL Tuning Advisor的用法:select variablein0_.TASKINSTANCE_ as TASKINS16_1_, variablein0_.CLASS_ as CLASS2_119_0_ from JBPM_V ARIABLEINSTANCE variablein0_ where variablein0_.TASKINSTANCE_=:bnd;首先,通过运行DBMS_SQLTUNE包的CREATE_TUNING_TASK和EXECUTE_TUNING_TASK过程创建和执行一个SQL Tuning 任务。