Oracle 9i 数据库性能调优技术-les01

合集下载

ORACLE 性能优化

ORACLE 性能优化

ORACLE 数据库性能优化参考书目:《ORACLE 9i Database Performance Tuning Guide and Reference》《ORACLE 9i Database Reference》《ORACLE 9i SQL Reference》《ORACLE 9i Database Administrator’s Guide》一、数据库实例创建过程参数确定在创建数据库实例过程中,需要确定以下几个参数:1. 数据块大小(DB_BLOCK_SIZE)该参数指明了ORACLE所处理的数据存贮于数据文档以及SGA内存中的数据块大小。

该参数的可选择的范围为:4k,8k,16k,32k,64k。

对于OLTP系统而言,取值可以为4K或8K,对于DSS系统而言,则可以取较大的数据,如32K或64K 建议统一取8K(即8192)说明DB_BLOCK_SIZE的大小将影响创建表时的EXTENT的大小。

例如指定db_block_size=16K,某表空间的EXTENT MANAGEMENT 为local autoallocate,则其系统将extent的大小最小指定为1M.所以将可能导致空间的浪费。

2. 字符集(Character set)该参数确定数据库以何种字符集来存贮CHAR以及V ARCHAR、V ARCHAR2等字符类型的值。

对于ORACLE数据字典中的字符(如表及字段的COMMENT内容)具有同样的作用。

因此需要考虑如字符集的使用。

对于国际项目,因为数据库中的comment内容(包括表及字符、存贮过程中的中文字符等内容)可能性需要以中文存贮,而用户业务数据使用的字符可能性是使用本地的语言,基于此,该参数需要选择支持UNICODE的字符编码的字符集。

目前ORACLE9i支持以下二种UNICODE字符集:⏹UTF8⏹AL32UTF8建议统一取AL32UTF83. 扩展段管理(EXTENT MANAGEMENT)该参数指明表空间中的扩展段的管理方式。

Oracle9i 应用系统优化

Oracle9i 应用系统优化

1、优化前提应用系统方案制定正确,对应用系统运行环境分析合理、正确,在数据库效劳器性能、存储空间、网络带宽等方面的配置能够到达系统运行要求.2、优化目标● 响应时刻与吞吐量平衡● 临界资源2.1响应时刻与吞吐量平衡依据应用类型的不同,性能优化的目标不同:在线事务处理系统OLTP〕把吞吐量定义为性能指标;决策支持系统〔DSS〕把响应时刻定义为性能指标。

响应时刻响应时刻=效劳时刻+等待时刻系统吞吐量系统吞吐量指在给定的时刻内所完成的工作量。

有以下两种技术:● 以相同的资源来完成更多的工作〔减少效劳时刻〕;● 通过减少整个响应时刻来更快完成工作。

等待时刻当竞争增强的时候,某个任务的效劳时刻也许维持不变,但它的等待时刻将增长。

我们开发的系统一般为OLTP和DSS的复合系统,侧重于OLTP,在硬件答应的情况下最好能够将运行数据库、分析数据库不离。

2.2临界资源诸如CPU、内存、I/O容量、网络带宽等资源,基本上减少时刻的要害因素。

性能好坏取决于以下因素:● 可用资源的数量● 需要该资源的客户方的数目● 客户方等待资源所消耗的时刻● 客户维持资源的时刻长短随着请求单元的增加,效劳时刻也增加。

为了处理这种情形,用户能够选择:● 通过限制请求的速率,从而维护可同意响应时刻● 还可通过增加资源数目,如CPU和硬盘〔增加资源的前提是应用系统设计良好,同时差不多做了充分的优化〕3、优化时期从实际做的工程过程来瞧,除了系统安装优化外,系统优化往往基本上在系统实施、运行时才考虑,事实上到这时期做系统优化的局限性对比大,因为系统架构设计都成型、固化,大幅度调整设计的代价特不珍贵,一般只能在局部领域做优化,只能通过重新分配内存或优化I/O来或多或少地提高性能,实际上优化应该贯穿系统设计、开发、安装、测试、运行整个过程。

3.1设计时期为了到达最正确的效果,优化工作应当从设计时期进行,而不是在系统实施后进行。

在数据库设计时期,个人认为需要注重如下几个方面:● 业务对象不能建立在系统表空间;● 索引表空间和业务表空间分开;● 将LOB类型的字段与其它的类型分开;● 依据应用系统功能确定是否要采纳冗余字段;● 正确的主键字段的选择,建议采纳数字,不推举使用复合主键;3.2开发、测试时期在开发实现时期,个人认为需要注重如下几个方面:● 执行sql使用变量绑定的方式,尽可能的保留在共享内存中,提高sql命中率;● 多表关联查询时采纳有效的连接顺序;● 尽可能的落低客户端和效劳器的网络数据交互,某个业务功能点需要频繁和数据库交互的,建议采纳存储过程、临时表实现;● 依据查询条件建立必要的索引,查询条件中使用oracle函数建立相对应的函数索引,数据值范围较小的采纳位图索引● 多张表关联查询时,有时可采纳先查询符合条件对应的表中要害字,然后通过要害字再查询对应表中相关信息;● 频繁访咨询,较少更新的数据量较小的表信息可采纳缓存的方式;● 在实现批量更新、插进时,要采纳jdbc批量执行方法,同时调整对应的fetchsize参数。

Oracle 9i 和 10g 高性能调优

Oracle 9i 和 10g 高性能调优

Oracle 9i 和10g 高性能调优介绍让我们从安装所需要的检查的事物开始来讨论oracle的优化。

调优环境调优的环境是什么?是一个你的调优努力能起作用的一种环境。

调整oralce数据库的所必需的东西⏹好多软件工具⏹训练有素的人⏹分段的测试环境⏹生产环境的一个副本○真实的和期望的生产环境。

在成长快速或者需求改变时,这些环境是经常不同的。

○经可能的使得数据库的大小/内容一致。

在不能完全满足这样的要求时,至少开发和测试数据库应该同生产数据库成比例○统计表是一样的吗?统计表可以拷贝,或者同生产数据库使用同样的时间间隔执行可用工具调整和监控数据库的优秀软件很多。

OEM有很多非常有用的小组件。

Spotlight擅长于对繁忙系统的视频和信息进行实时监控。

两者对调整数据库物理和SQL代码的性能分析都是非常有用的。

也有许多其他的工具可用。

在调整过程中最重要的工具是developer和administrators。

那是为什么你读这本书的原因。

最好的软件工具也意味着是最昂贵的,当然这也不是说较为便宜的工具是无用的了。

通常,越贵的软件为你所做的事情越多。

然而,有时候自动为你做了某些工作,你不理解其内部机制。

你的工具集未必比经过良好训练,经验丰富的数据库管理员和开发人员作得更好。

训练有素的人好的训练有其恰当的地方。

作为系统管理员或者开发者,数据库管理员趋向于有root权限。

每一种训练都有其优缺点。

开发者除了编码SQL,创建数据模块之外,所了解的知识越来越多。

系统管理员对unix之类的操作系统知识具有广泛的了解,关注的是oracle数据库的物理存储的调优。

开发者关注的是数据库模型和创建更为高效的SQL代码方面的优化。

幸的是,事情不总是如此。

有时候开发者趋向于把调优SQL代码和数据模型负担看着是数据库管理的负责范围。

这样就会导致混乱。

分段的环境你需要尽可能多的实验环境。

作为DBA,你不能期望在一个在线的生产数据库上进行调优工作。

oracle数据库性能调整与优化

oracle数据库性能调整与优化

Oracle9i数据库性能调整与优化V1.0在数据库成熟应用的时代,数据库的性能优化已经演变为一项相当严密的系统工程。

作为企业IT基础设施的核心部件之一,数据库并不是孤立的系统,它与网络、操作系统、存储等硬件系统紧密相连,这种与其他IT部件的多重连接特性决定了数据库性能优化是一门综合技术。

数据库性能优化的实现路径和IT系统管理架构越来越密不可分。

Oracle9i数据库在内部特性方面有着非常大增强,其中一个最令Oracle DBA兴奋莫过于可以动态设置全部Oracle SGA控制参数。

与8i不同是,原来都将初始化参数放到一个文本文件中,并且在数据库启动时候读取,Oracle9i却可以通过ALTER DATABASE 和ALTER SYSTEM命令复位全部Oracle参数。

在9i前,如果想对Oracle数据库处理模式作一些改变话,Oracle管理员必须关闭数据库并且重新设置INIT.ORA文件中参数,然后重新启动数据库。

对于白天使用OLTP 模式运作,晚上切换到数据仓库模式Oracle数据库来说,这种重新设置是经常做。

对于需要停止和重新启动Oracle数据库来修改参数来说,Oracle9i在这方面有明显加强,它令实现数据库连续可用目标变得更加简单。

定义:SGA:(System Global Area)是Oracle Instance的基本组成部分,在实例启动时分配。

是一组包含一个Oracle实例的数据和控制信息的共享内存结构。

主要是用于存储数据库信息的内存区,该信息为数据库进程所共享(PGA不能共享的)。

它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

理论上SGA可占OS系统物理内存的1/2——1/3。

SGA几个很重要的特性:1、SGA的构成——数据和控制信息,我们下面会详细介绍;2、SGA是共享的,即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问(当涉及到互斥的问题时,由latch和enquence控制);3、一个SGA只服务于一个实例,也就是说,当一台机器上有多个实例运行时,每个实例都有一个自己的SGA尽管SGA来自于OS的共享内存区,但实例之间不能相互访问对方的SGA区。

调整优化Oracle 9i数据库的性能

调整优化Oracle 9i数据库的性能

调整优化Oracle 9i数据库的性能
何月顺;丁秋林
【期刊名称】《计算机应用与软件》
【年(卷),期】2004(021)006
【摘要】介绍调整和优化Sun SPARC Solaris系统平台上的Oracle 9i数据库服务器的一些相关命令和方法.
【总页数】3页(P10-11,40)
【作者】何月顺;丁秋林
【作者单位】南京航空航天大学,南京,210016;东华理工学院,抚州,344000;南京航空航天大学,南京,210016
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.Oracle 9i数据库的性能调整和优化 [J], 尹成国
2.基于Oracle 9i数据库的查询优化 [J], 廖建华
3.Oracle 9i数据库性能优化 [J], 姚树春;朱艳琴
4.索引调整优化Oracle 9i工作性能的研究 [J], 谷小秋;李德昌
5.浅议如何调整优化Oracle 9i数据库的性能 [J], 胡铁峰
因版权原因,仅展示原文概要,查看原文内容请购买。

Oracle 9i 数据库性能调优技术-les02

Oracle 9i 数据库性能调优技术-les02
2-2 Copyright © Oracle Corporation, 2002. All rights reserved.
Maintenance of the Alert Log File
• •
The alert log file consists of a chronological log of messages and errors. Check the alert log file regularly to:
2-21
Copyright © Oracle Corporation, 2002. All rights reserved.
Tuning Using Oracle Expert
2-14
Copyright © Oracle Corporation, 2002. All rights reserved.
Statspack
• • • • •
Installation of Statspack using the spcreate.sql script Collection of statistics execute statspack.snap Automatic collection of statistics using the spauto.sql script Produce a report using the spreport.sql script To collect timing information, set TIMED_STATISTICS = True
2-7
Copyright © ll rights reserved.
Oracle Enterprise Manager Console
2-9

ORACLE数据库性能优化

ORACLE数据库性能优化

(三)(三)优化 I/O 操作 I/O 优化被安排在内存优化之后,通过内存的优化,可以是 I/O 冲突减少,在此情况下, 可以通过一些调整以使 I/O 性能进一步提高。 对于新系统,应自顶向下分析 I/O 需求,确定所需要的资源。而对于已存在的系统应采 用自底向上的方法: 1.1.了解系统的磁盘数量。 2.2.了解 ORACLE 使用的磁盘数量。 3.3.了解应用系统的 I/O 类型。 4.4.了解 I/O 操作是针对文件系统还是原始设备。 5.5.了解对象在磁盘上的分布。 可以通过如下方法检查 I/O 问题: 检查系统 I/O 的使用:可以使用操作系统提供的工具来监视整个系统对磁盘 文件的访问,可以将大量访问磁盘的应用与 ORACLE 的相关文件分别存放。在 UNIX 系统中可以通过 sar –d 来获得有关数据。在 WINDOWS NT 中 可 通 过 性 能监视器查看。 检查 ORACLE 的 I/O 的使用:对于 ORACLE ,可以通过下列视图来获得相 关的信息: File Type Where to Find Statistics Database Files V$FILESTAT Log Files V$SYSSTAT, V$SYSTEM_EVENT, V$SESSION_EVENT Archive Files V$SYSTEM_EVENT, V$SESSION_EVENT Control Files V$SYSTEM_EVENT, V$SESSION_EVENT 可以通过如下的方法来解决 I/O 问题: 减少磁盘竞争: 磁盘竞争:当多个进程同时访问同一个磁盘时就会产生磁盘竞争。要减 少高负荷磁盘的访问,可以将高访问量的文件移到低负荷的磁盘上。 分离 Redo 日志文件和数据文件:ORACLE 总是经常的访问 Redo 日志 文件和数据文件,将二者放在一起,可能会增加磁盘冲突。 条带化表数据:条带化,就是将一个大表的数据分布到不同磁盘的不同 数据文件中,这样也可以减少磁盘冲突。 分离表和索引:这并不是必须的,由于索引和表的读取是串行的,也可 以做到将表和索引放在一起而不发生磁盘冲突。 磁盘条带化:就是将一个大表的数据分布到不同磁盘的不同数据文件中,条 带化允许不同的进程同时访问一个表的不同部分。 这尤其对随机访问一个表的多行 很有帮助。条带化可以是磁盘的 I/O 负载平衡。有两种条带化方法。 手动方法:利用表空间以及分区表的方式。

Oracle9i性能调整

Oracle9i性能调整

create or replace function GET_SQL(V_SQLADDRESS in RAW, V_SQLHASHVALUE in NUMBER) return varchar2 is Result varchar2(2000); CURSOR C1 IS SELECT A.SQL_TEXT FROM V$SQLAREA A WHERE A.ADDRESS=V_SQLADDRESS AND A.HASH_VALUE=V_SQLHASHVALUE; begin FOR REC IN C1 LOOP RESULT:=RESULT||REC.SQL_TEXT; END LOOP; return(Result); end GET_SQL;
索引与性能
基于函数的索引 Create index ind_name on animal (upper(animal_name)); CBO, query_rewrite_enable=true query_rewrite_integrity=trusted 分析相应的表,列,所有索引;
Bad sql的定位
索引与性能
Index的原理(通常指B树) 根据键值来确定rowid,根据rowid来定位记录 Index的平衡性 DML对index的影响,而键值不会被删除。 Index的效率 可选择性的问题 重组的必要性 效率以及DML的影响 索引组织表(IOT)原理 既是表又是索引。 适用场合:静态的所有列皆为pk的大表
如何跟踪一个session
10046 event(level n)+tkprof n=4:enable sqltrace+variable bind; n=8:enable sqltrace+wait event; n=12: n=4+n=8

Oracle9i性能调整

Oracle9i性能调整

索引与性能
IOT创建语句 create table t1 (x int primary key,y int,x int) organization index; 减小IO数量,但是bug较多。 位图index 适合选择性不强的情况,专为DSS系统设计。锁定块 ,不适合OLPT系统。 加速创建INDEX nologging-注意备份 并行创建
系统资源的调整-IO
IO系统的监控 iostat -xn 以看出系统在单位时间内的读写次数以及吞吐能力 Dbfile的io控制 CREATE TABLE sum_read_writes AS SELECT SUM(phyrds) phys_reads, sum(phywrts) phys_wrts FROM V$FILESTAT; TTITLE ' DATAFILE DISK I/O REPORT' COLUMN name FORMAT a35 COLUMN phyrds FORMAT 999,999,999 COLUMN phywrts FORMAT 999,999,999 COLUMN read_pct FORMAT 999.99 COLUMN write_pct FORMAT 999.99 SELECT name, phyrds, phyrds * 100 / srw.phys_reads read_pct, phywrts, phywrts * 100 / srw.phys_wrts write_pct FROM sum_read_writes srw, v$datafile df, v$filestat fs WHERE df.file# = fs.file# ORDER BY phyrds desc; DROP TABLE sum_read_writes; clear columns TTITLE off

Oracle 9i 整体性能优化概述草稿之一 调整争用

Oracle 9i 整体性能优化概述草稿之一 调整争用

2.2.2是否存在latch争用
select event,total_waits,time_waited
from v$system_event
where event = ‘latch free’;
如:
EVENT TOTAL_WAITS TIME_WAITED
---------- ----------- -----------
? library cache:需要优化library cache。
? cache buffers LRU chain:管理database cache buffers上的LRU List上的块,自由缓冲区列表。此争用有两种可能:
- 导致严重的全部扫描的SQL语句或执行计划。SQL需要优化。
- 脏缓冲区写盘database writer未能跟上I/O请求。优化磁盘I/O。
比如如果应用程序有许多频繁插入行的用户,在试图访问该表的free list就可能会经历等待。
2.3.2是否存在free list争用
select event,total_waits,time_waited from v$system_event
where event = ‘buffer busy waits’;
而lock,在遇到问题的时候,可作为维护参考,平时不进行太多的维护(或从应用上考虑优化)。(除了定期去$ORACLE_HOME/admin/$ORACLE_SID/udump查看死锁情况外)
2.2诊断latch竞争
2.2.1概念
Latch是简单的、低层次的序列化技术,用以保护SGA中的共享数据结构,比如并发用户列表和buffer cache里的blocks信息。一个服务器进程或后台进程在开始操作或寻找一个共享数据结构之前必须获得对应的latch,在完成以后释放latch。不必对latch本身进行优化,如果latch存在竞争,表明SGA的一部分正在经历不正常的资源使用。

Oracle 9i SQL优化快速手册V1.00

Oracle 9i SQL优化快速手册V1.00

Oracle 9i SQL优化快速手册——蒋红腥1概述《Oracle 9i数据库SQL优化快速手册》并不全面讲解Oracle9i SQL优化技术,也不具体分析各种优化方法的原理,旨在通过简单明显有效的调整方法,帮助程序员或维护人员在开发、维护过程中,针对执行速度极慢的Oracle数据库开发操作,快速取得更快、更好的执行效果。

此时优化的结果并不是最优的,但我们的目标是能快速满足我们操作数据库的需求即可。

若想取得更多的SQL优化效果,请参考附件《Oracle 9i SQL语句调整》。

若要取得尽可能多的优化效果,则需要参考有关书籍,从Oracle服务器级优化、网络级优化、内存级优化以及优化器-SQL 优化等等入手进行综合优化。

下文中使用的方法,并不是完全规范的,合理的,但为求简单、方便快速的满足一般应用,一些设置采用了推荐设置、默认设置,直接按照说明操作,即可获得大多数的明显的优化结果。

2简易优化过程根据执行计划,通过添加索引,使用CBO提示等优化方式,调整执行计划,达到满足需求。

前提条件:已知那些执行语句慢。

2.1第一步:准备优化调试环境⏹使用windows自带的command,打开2个窗口登陆到数据库服务器。

⏹设置查看“执行计划环境command窗口”。

在其中一个以$sqlplus “/as sysdba”方式登陆的SQL提示符下执行如下命令:SQL>set autotrace traceonly explainSQL>⏹设置“调试SQL语句窗口”。

在另一个command窗口使用执行该语句的用户登陆;执行该语句,记录执行时间。

如:$sqlplus perf/perf@omcdbSQL> set timing on ---设置SQL执行时间记录返回--- 照着执行SQL>alter session set optimizer_index_cost_adj=30; --- 照着执行SQL>alter session set optimizer_index_caching=40; --- 照着执行SQL>执行返回的时间格式说明,如:已用时间: 00: 00: 00.04 小时:分:秒.微秒2.2第二步:查看SQL语句执行计划在“执行计划环境command窗口”中,执行被调试的SQL语句,此时会输出该语句的执行计划,如下所示:(在from table的table表名前,添加该表的所属用户名)如上图所示,兰色部分为我们输入的需要执行计划提示的命令和我们需要调试的SQL语句,红色部分为该语句在数据库中将使用的执行计划。

浅议如何调整优化Oracle 9i数据库的性能

浅议如何调整优化Oracle 9i数据库的性能

浅议如何调整优化Oracle 9i数据库的性能胡铁峰【摘要】随着计算机网络技术的不断发展,其在各个领域中的应用也越来越广泛,与此同时数据库也随之获得了广泛应用。

在互联网上的诸多数据库当中,Oracle 9i数据库以其自身诸多的优点,受到业界一直的好评和认可。

然而,在实际运行过程中,经常会出现一些瓶颈问题,从而影响了Oracle 9i数据库的运行。

为此,应采取相应的策略对Oracle 9i数据库的性能进行调整优化。

首先对Oracle 9i数据库进行概述,进而分析了Oracle 9i数据库常见的资源问题,并在此基础上提出Oracle 9i数据库的优化调整策略。

【期刊名称】《黑龙江科技信息》【年(卷),期】2012(000)022【总页数】1页(P86-86)【关键词】Oracle;9i;数据库;优化调整;性能【作者】胡铁峰【作者单位】中国联合网络通信有限公司长春市分公司,吉林长春130000【正文语种】中文【中图分类】TP311.13Oracle 9i是当前业界内最为简单、完整、智能化的用于互联网上协作各种应用的软件基础架构。

其实质上就是Oracle 9i Database、Application Server以及Developer Suite的完整集成。

现如今,随着软件逐渐成为一种托管服务,Oracle9i以其在自身的高可靠性、高所伸缩性以及高智能化,将会成为互联网上高质量电子商务服务实现的关键软件。

Oracle 9i在8i的基础之上又增添了许多新的功能和特性,这些功能和特性主要体现在以下几个方面上:其一,实现连续的数据可用性。

Oracle 9i极大程度地扩展了其在互联网数据库可用性方面的地位,具体包括:全球领先的数据保护环境、联机数据演变、准确的数据库修复以及自我服务错误更正等功能;其二,可伸缩性和性能。

Oracle 9i不仅允许电子商务扩展到千万用户,而且用户每小时都能完成数百万的事物处理。

具体包括:可伸缩的绘画状态管理、电子商务优化等等;其三,提供端到端的安全体系结构。

Oracle 数据库性能优化技术

Oracle 数据库性能优化技术

ORACLE数据库性能优化技术语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。

4、调整服务器内存分配。

内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。

需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。

5、调整硬盘I/O,这一步是在信息系统开发之前完成的。

数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。

6、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。

实际上,上述数据库优化措施之间是相互联系的。

ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,需要用户长时间的等待。

但性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。

另外,良好的数据库管理工具对于优化数据库性ORACLE数据库性能优化工具常用的数据库性能优化工具有:1、ORACLE数据库在线数据字典,ORACLE在线数据字典能够反映出ORACLE动态运行情况,2、操作系统工具,例如UNIX操作系统的vmstat,iostat等命令可以查看到系统系统级内存和硬盘I/O的使用情况,这些工具对于管理员弄清出系统瓶颈出现在什么地方有时候很有用3、SQL语言跟踪工具(SQL TRACE FACILITY),SQL语言跟踪工具可以记录SQL语句的执行情况,管理员可以使用虚拟表来调整实例,使用SQL语句跟踪文件调整应用程序性能。

SQL语言跟踪工具将结果输出成一个操作系统的文件,管理员可以使用TKPROF工具查看这些文件。

0racle9i数据库性能调整与优化

0racle9i数据库性能调整与优化
p o e s s a d w y f e o ma c u i g o a l aa a e r c s e n a so r r n e t n n n Or c e d t b s . pf
Ke r s d tb s ; r ce DBMS a piain p r r n et nn y wo d : aa a e O a l; p l t ; e o ma c ig c o f u
DAI Xi o p n a - ig
( ho o C m u r c ne A hi n esy f eho g, a nhn 4 0 2 C i ) S ol f o pt i c, nu U i rt o Tcnl M sa 30 , h a c eS e v i o y a 2 n
o to s ue gn rl .Many it d cs hw o dutme r aa ees n O al a bs o f me d i sd eeal h y il nr u e o t js o a moy p rm t o rce dt ae t r a
a c mpih te p r r n eo t z t n o h aa ae Us sa ra nie a piain s se t l srtste c o l h ef ma c pi ai fte d tb s . e e lo l p l t y tm o iu tae h s o mi o n c o l
性能满意的数据库 。
Oa e r 数据库是非常优 秀的大型关系数据库系统 , , l c 同时 也是非常复杂和灵活的一种大型数据库 , 它提供 丰富的工具和手段对其进行监控和分析。 通常, 需要从 Oal数据库的体系结构 、 r e c 物理分布等角度 , 围绕数据

oracle性能调优篇--Oracle9i 的查询优化

oracle性能调优篇--Oracle9i 的查询优化

oracle性能调优篇----Oracle9i 的查询优化本文描述了Oracle 的查询优化程序,它是数据库的关键组件,能让Oracle 的用户获得极佳的执行性能。

Oracle 的查询优化技术在功能上无与伦比,本文详细讨论了查询优化的所有重要领域。

简介什么是查询优化程序?查询优化对于关系数据库的性能,特别是对于执行复杂SQL 语句的性能而言至关重要。

查询优化程序确定执行每一次查询的最佳策略。

例如,查询优化程序选择对于指定的查询是否使用索引,以及在联接多个表时采用哪一种联接技术。

这类决策对SQL 语句的执行性能有很大的影响,查询优化对于每一种应用程序都是关键技术,应用程序涉及的范围从操作系统到数据仓库,从分析系统到内容管理系统。

查询优化程序对于应用程序和最终用户是完全透明的。

由于应用程序可能生成非常复杂的SQL 语句, 查询优化程序必须精心构建、功能强大,以保障良好的执行性能。

例如,查询优化程序可转换SQL 语句,使复杂的语句转换成为等价的但执行性能更好的SQL 语句。

查询优化程序的典型特征是基于开销。

在基于开销的优化策略中,对于给定查询生成多个执行计划,然后对每个计划估算开销。

查询优化程序选用估算开销最低的计划。

Oracle 在查询优化方面提供了什么?Oracle 的优化程序可称是业界最成功的优化程序。

基于开销的优化程序自1992 年随Oracle7 推出后,通过10 年的丰富的实际用户经验,不断得到提高和改进。

好的查询优化程序不是基于纯粹的理论假设及谓词在实验室中开发出来的,而是通过适合实际用户需求开发和磨合出来的。

Oracle 的查询优化程序比任何其他查询优化程序在数据库应用程序的应用都要多,而且Oracle 的优化程序一直由于实际应用的反馈而得到改进。

Oracle 的优化程序包含4 大主要部分(本文将在以下章节详细讨论这些部分):SQL 语句转换:在查询优化中Oracle 使用一系列精深技术对SQL 语句进行转换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• •
Bad cursor management Bad relational design
– Unnecessary table joins performed – Usually a result of trying to build an object interface to relational storage
1-7
Copyright © Oracle Corporation, 2002. All rights reserved.
Tuning Steps During Development
• • • • • •
Tune the design Tune the application Tune memory Tune I/O Tune contention Tune the operating system
1-5
Copyright © Oracle Corporation, 2002. All rights reserved.
Tuning Goals
Tuning goals are usually specified in terms of: • Reducing or eliminating waits • Accessing the least number of blocks • Caching blocks in memory • Minimizing response time • Increasing throughput • Increasing load capabilities • Decreasing recovery time • Instance hit percentages
1-15
Copyright © Oracle Corporation, 2002. All rights reserved.
1-10
Copyright © Oracle Corporation, 2002. All rights reserved.
Database Server Tuning Methodology
• • • •
Check alert log and trace files for errors. Check the parameter file for any diagnostic or inappropriate parameter setting. Check memory, I/O, and CPU usage. Identify processes with resource usage anomalies. Identify and tune SQL statements that are heavy consumers of CPU or I/O.
1-14
Copyright © Oracle Corporation, 2002. All rights reserved.
Summary
In this lesson, you should have learned how to: • Create a good initial design • Define a tuning methodology • Perform production tuning • Establish quantifiable goals • List tuning problems • Decide between performance and safety
1-8
Copyright © Oracle Corporation, 2002. All rights reserved.
Collect a Baseline Set of Statistics
A baseline set of statistics is used to: • Provide a set of statistics collected when the system was operating within the bounds set • Create a hypothesis about what has changed on the system
• •
What to tune? How much tuning?
1-3
Copyright © Oracle Corporation, 2002. All rights reserved.
Tuning Phases
Tuning can be divided into different phases: • Application design and programming • Database configuration • Adding a new application to an existing database • Troubleshooting and tuning
1-6
Copyright © Oracle Corporation, 2002. All rights reserved.
Common Performance Problems

Bad session management
– Limits scalability to a point that cannot be exceeded – Makes the system one or two orders of magnitude slower than it should be
Overview of Oracle9i Database Performance Tuning
Copyright © Oracle Corporation, 2002. All rights respleting this lesson, you should be able to do the following: • Define the roles associated with the database tuning process • Describe the dependencies between tuning in different development phases • Describe service level agreements • Identify tuning goals • Identify common tuning problems • Employ tuning activities during development and production • Balance performance and safety trade-offs
1-9
Copyright © Oracle Corporation, 2002. All rights reserved.
Tuning Steps for a Production Database
1. 2. 3. 4. 5. 6.
Define the problem. Examine the host system and Oracle statistics. Consider some common performance errors. Build a conceptual model. Implement and measure the change. Check that the bottleneck has been resolved.
1-13
Copyright © Oracle Corporation, 2002. All rights reserved.
Performance Versus Safety Trade-Offs
Factors that affect performance: • Multiple control files • Multiple redo log members in a group • Frequent checkpointing • Backing up datafiles • Performing archiving • Block check numbers • Number of concurrent users and transactions
1-12
Copyright © Oracle Corporation, 2002. All rights reserved.
Database Server Tuning Methodology
Tune response time: • Analyze system performance in terms of work done (CPU or service time) versus time spent waiting for work (wait time). • Determine which component consumes the greatest amount of the time. • Drill down to tune that component if appropriate.
1-2 Copyright © Oracle Corporation, 2002. All rights reserved.
Tuning Questions

Who tunes?
– – – – Application designers Application developers Database administrators System administrators
相关文档
最新文档