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

合集下载

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管理)Oracle9i 应用系统优化

(Oracle管理)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数据库的性能

调整优化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 负载平衡。有两种条带化方法。 手动方法:利用表空间以及分区表的方式。

Oracle+9i+整体性能优化

Oracle+9i+整体性能优化

Oracle 9i 整体性能优化概述草稿之一:调整争用2.1 优化维护 42.2 诊断LATCH竞争 42.2.1 概念 42.2.2 是否存在latch争用 52.2.3 检查Latch是否主要竞争 52.2.4 DBA关注的latch内容 52.3 诊断FREE LIST竞争 62.3.1 概念 62.3.2 是否存在free list争用 62.3.3 确定free list 争用的段 72.3.4 优化free list争用 72.4 诊断LOCK竞争 82.4.1 概念 82.4.2 可能引起lock contention的原因 82.4.3 锁解决办法 92.4.4 死锁 92 调整争用争用:每当一个Oracle 进程试图访问一个Oracle结构,但由于该结构正由另一个进程结构使用而未能成功访问到它时,就发生对Oracle资源的争用。

常见的有latch、Free List 、lock争用。

主要维护的争用有:Latch(锁存器):可作为内存性能的指标,说明内存需要调整。

λFreeλ List:会导致繁忙表上的DML操作性能很差。

Lock:会遇到彻底的暂停,产生巨大的性能影响。

λ2.1优化维护维护时,主要通过检查,判断存在的latch和free list争用是否合理,不合理,则启动相应的优化工作。

而lock,在遇到问题的时候,可作为维护参考,平时不进行太多的维护(或从应用上考虑优化)。

(除了定期去$ORACLE_HOME/admin/$ORACLE_SID/udump查看死锁情况外)2.2诊断latch竞争2.2.1概念Latch是简单的、低层次的序列化技术,用以保护SGA中的共享数据结构,比如并发用户列表和buffer cache里的blocks信息。

一个服务器进程或后台进程在开始操作或寻找一个共享数据结构之前必须获得对应的latch,在完成以后释放latch。

不必对latch本身进行优化,如果latch存在竞争,表明SGA的一部分正在经历不正常的资源使用。

les_14_schedule

les_14_schedule

创建基于时间的作业示例: • 创建一个作业,从今晚起在每晚 11:00 调用备份脚 本。

BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name=>'HR.DO_BACKUP', job_type => 'EXECUTABLE', job_action => '/home/usr/dba/rman/nightly_incr.sh', start_date=> SYSDATE, repeat_interval=>'FREQ=DAILY;BYHOUR=23', /* next night at 11:00 PM */ comments => 'Nightly incremental backups'); END; /14-11创建基于时间的作业 使用 DBMS_SCHEDULER 程序包的 CREATE_JOB 过程来创建作业。

默认情况下 将以禁用状态创建作业,仅当明确启用时,这些作业才生效并可以调度。

所有作 业名称的形式都为:[schema.]name。

应该使用 SYSTIMESTAMP 并指定时区,这样当时间因夏时制更改时,作业能够 自动调整其执行时间。

默认情况下,将在当前方案中创建作业。

可以通过指定方案的名称在另一个方案 中创建作业,如幻灯片中的示例所示。

作业所有者是在其方案中创建作业的用 户,而作业创建者是创建作业的用户。

作业将以作业所有者的权限来执行。

作业 运行时的国家语言支持 (NLS) 环境与创建作业时存在的环境相同。

job_type 参数指示作业将要执行的任务的类型。

可能的值包括: • PLSQL_BLOCK:匿名 PL/SQL 块 • STORED_PROCEDURE:命名的 PL/SQL、Java 或外部过程 • EXECUTABLE:可以从操作系统命令行执行的命令Oracle Database 10g:数据库管理 - 课堂练习 II 14-11创建基于时间的作业(续) job_action 参数可以是要运行过程的名称、脚本的名称或操作系统命令的名 称,也可以是匿名的 PL/SQL 代码块,具体取决于 job_type 参数的值。

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

ORD_NO -----101 102
ORD_DT CUST_CD ----------05-JAN-97 R01 07-JAN-97 N45
Unclustered orders and order_item tables
Clustered orders and order_item tables
14-7
14-16
Copyright © Oracle Corporation, 2002. All rights reserved.
Partitioned Indexes for Scalable Access
Global Nonpartitioned index Global Partitioned Index
Partitioned table
14-3
Copyright © Oracle Corporation, 2002. All rights reserved.
Selecting the Physical Structure
Factors affecting the selection: • Rows read in groups • SELECT or DML statements
Copyright © Oracle Corporation, 2002. All rights reserved.
Cluster Types
Index cluster Hash clusterLeabharlann Hash function
14-8
Copyright © Oracle Corporation, 2002. All rights reserved.
99-Jan
99-Feb 99-Mar 99-Apr 99-May 99-Jun
Partition pruning: Only the relevant partitions are accessed.
SQL> 2 3 4 5 6 7 SELECT SUM(sales_amount) FROM sales WHERE sales_date BETWEEN TO_DATE(‘01-MAR-1999’, ‘DD-MON-YYYY’) AND TO_DATE(‘31-MAY-1999’, ‘DD-MON-YYYY’);
Predictable number of key values Queries using equality predicate on key
X
X X
14-9
Copyright © Oracle Corporation, 2002. All rights reserved.
Partitioning Methods
CREATE TABLE customer ... PARTITION BY LIST (state) (PARTITION p1 VALUES ('CA','CO'), PARTITION p2 VALUES ('FL','TX'), PARTITION p3 VALUES (DEFAULT) );
14-6
Copyright © Oracle Corporation, 2002. All rights reserved.
Clusters
ORD_NO ----101 102 102 102 101 101 PROD -----A4102 A2091 G7830 N9587 A5675 W0824 QTY -----20 11 20 26 19 10 ... Cluster Key (ORD_NO) 101 ORD_DT CUST_CD 05-JAN-97 R01 PROD QTY A4102 20 A5675 19 W0824 10 102 ORD_DT CUST_CD 07-JAN-97 N45 PROD QTY A2091 11 G7830 20 N9587 26
Data Access Methods
To enhance performance, you can use the following data access methods: • Clusters • Indexes • B-tree (normal or reverse key) • Bitmap • Function based • Index-organized tables • Materialized views
Table partition
Table partition
Table partition
Table partition
Local partitioned index
14-17 Copyright © Oracle Corporation, 2002. All rights reserved.
Partition Pruning
14-14 Copyright © Oracle Corporation, 2002. All rights reserved.
Default Partition for List Partitioning
Create a DEFAULT list partition for all values not covered by other partitions:
The following partitioning methods are available: • Range • Hash • List • Composite
Range partitioning
14-10
Hash partitioning
List partitioning
Composite partitioning
• • • • Table size Row size, row group, and block size Small or large transactions Using parallel queries to load or for SELECT statements
14-4
Copyright © Oracle Corporation, 2002. All rights reserved.
The partition key is week_no. 2 VALUES LESS THAN must be specified as a literal. 3 Physical attributes can be set per partition.
1
14-12
Copyright © Oracle Corporation, 2002. All rights reserved.
14-2
Copyright © Oracle Corporation, 2002. All rights reserved.
Data Storage Structures
Heap table
Cluster
Indexorganized table
Organization by value Heap Clustered Sorted
Copyright © Oracle Corporation, 2002. All rights reserved.
Range Partitioning Example
CREATE TABLE sales (acct_no NUMBER(5), person VARCHAR2(30), sales_amount NUMBER(8), 1 week_no NUMBER(2)) 3 PARTITION BY RANGE (week_no) 2 (PARTITION P1 VALUES LESS THAN (4) TABLESPACE data0, PARTITION P2 VALUES LESS THAN (8) TABLESPACE data1, ...… PARTITION P13 VALUES LESS THAN (53)TABLESPACE data12 );
14-13
Copyright © Oracle Corporation, 2002. All rights reserved.
List Partitioning Example
SQL> CREATE TABLE locations 2 (location_id, street_address, 3 postal_code, city, state_province, 4 country_id) 5 STORAGE(INITIAL 10K NEXT 20K) 6 TABLESPACE users 7 PARTITION BY LIST (state_province) 8 (PARTITION region_east 9 VALUES('MA','NY','CT','ME','MD'), 10 PARTITION region_west 11 VALUES('CA','AZ','NM','OR','WA'), 12 PARTITION region_south 13 VALUES('TX','KY','TN','LA','MS'), 14 PARTITION region_central 15 VALUES('OH','ND','SD','MO','IL'));
Hash Partitioning Overview
• •
• • •
Easy to Implement Enables better performance for PDML and partition-wise joins Inserts rows into partitions automatically based on the hash of the partition key Supports (hash) local indexes Does not support (hash) global indexes
相关文档
最新文档