oracle for trueunix 性能调优
Unix环境下的Oracle调优
Unix环境下的Oracle调优首先通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲这也可能不是一个正常的状态首先通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲这也可能不是一个正常的状态,因为cpu可能正等待IO的完成。
除此之外我们还应观注那些占用系统资源(cpu、内存)的进程。
$ sar -u 1 10HP-UX bilut42 B.11.11 U 9000/800 10/31/0609:50:02 %usr %sys %wio %idle09:50:03 4 1 30 6509:50:04 7 1 27 6509:50:05 2 0 25 7309:50:06 1 1 21 7709:50:07 1 0 19 8009:50:08 8 1 18 7309:50:09 12 1 22 6509:50:10 9 1 22 6809:50:11 8 0 21 7109:50:12 9 1 20 70Average 6 1 23 71其中%usr是用户进程使用cpu的百分比,%sys是系统进程使用cpu的百分比,%wio 是等待IO完成使用cpu的百分比,%idle是空闲的百分比。
如果%wio列值很大,说明IO存在问题,需要进行优化,一般情况下认为%wio大于35IO就存在问题。
如果%idle值很低,说明cpu已经满负荷。
当你的系统存在IO的问题,可以从以下几个方面解决:1 联系相应的操作系统的技术支持对这方面进行优化,比如hp-ux在划定卷组时的条带化等方面。
2 查找Oracle中不合理的sql语句,对其进行优化3 对Oracle中访问量频繁的表除合理建索引外,再就是把这些表分表空间存放以免访问上产生热点,再有就是对表合理分区。
Oracleg数据库性能调优方法
减少存储过程的调用次数 通过减少存储过程的调用次数, 可以减少数据库的负载。
优化存储过程的逻辑 通过优化存储过程的逻辑,可以 提高存储过程的执行效率。
调优技术:分区表与分区索引
分区表
将一个大表分成多个小表,可以提高查询效 率。
分区索引
为分区表创建分区索引,可以加快查询速度 。
合理分区
根据实际情况,将数据按照时间、地域等因 素进行分区,可以提高查询效率。
• 考虑使用分布式文件系统和集群解决方案,提高存储性能和可靠性。
优化策略:硬件配置与软件设置
根据业务需求和数据量,选择合适的数据库管理系统和 版本。
考虑使用多实例和分片解决方案,提高系统可用性和扩 展性。
软件设置 调整数据库参数和配置,优化内存使用和磁盘IO。
优化策略:数据库结构与数据设计
数据库结Байду номын сангаас 设计合理的表结构,减少数据冗余和重复。
oracleg数据库性能调优方 法
2023-11-09
目录
• 数据库性能问题与影响 • 数据库性能优化目标与策略 • 数据库性能调优技术与方法 • 数据库性能监控与分析工具 • 数据库性能优化实践与案例
01
数据库性能问题与影响
性能问题的定义与表现
性能问题定义
数据库性能问题是指系统无法在规定时间内完成用户请求, 导致响应延迟、系统卡顿、甚至崩溃。
在OEM中,DBA可以通过图形界面查看数 据库性能数据、执行SQL语句、管理数据库
对象等操作。同时,OEM还提供了告警功 能,能够及时发现数据库性能问题并发送警
报。
05
数据库性能优化实践与案 例
某银行数据库优化案例
硬件配置优化
01
Oracle的性能优化
千里之行,始于足下。
Oracle的性能优化Oracle数据库性能优化是提高数据库性能的关键步骤之一。
通过对数据库的优化,可以提高查询速度、降低系统负载、提升系统稳定性,从而提高用户的体验。
下面将介绍一些常见的Oracle数据库性能优化策略。
1. 索引优化:索引是提高查询效率的重要手段,可以极大地减少查询时的磁盘I/O操作。
优化索引包括以下几个方面:- 选择合适的索引类型,如B树索引、位图索引等。
根据具体业务场景选择适当的索引类型。
- 考虑创建复合索引,将多个列放在同一个索引内,可以减少索引的数量,提高查询效率。
- 避免创建过多的索引,过多的索引会增大数据插入和更新的成本。
- 定时对索引进行统计信息收集,使优化器能够更好地选择索引执行计划。
2. 查询优化:- 避免使用SELECT *查询,只查询需要的列,减少数据传输量。
- 使用合理的JOIN语句,避免嵌套循环连接或者全表扫描。
- 使用EXISTS或IN替代NOT EXISTS或NOT IN,后者在数据量大时性能较差。
- 避免使用函数或者表达式作为WHERE条件,这会导致索引失效。
- 使用分页查询时,尽量使用ROWNUM而不是OFFSET/FETCH,后者性能较差。
3. 表结构优化:- 合理设计表结构,尽量避免冗余数据和重复字段。
- 使用正确的数据类型,减少存储空间的浪费。
第1页/共3页锲而不舍,金石可镂。
- 选择合适的表空间和存储策略,避免表空间的碎片化和数据文件的扩展问题。
- 定期清理无用数据,避免数据库膨胀过快。
4. 系统参数优化:- 调整SGA参数和PGA参数的大小,根据实际情况合理分配内存。
- 调整日志参数,如redo日志大小和checkpoint间隔,减少写入磁盘的次数。
- 调整并发参数,如并行度和数据库连接数,提高系统的并发性能。
5. 存储优化:- 使用合理的存储结构,如表空间、数据文件、表和索引的分布策略。
- 使用合适的存储介质,如固态硬盘(SSD)、闪存阵列等,提高存储性能。
详解Oracle几种性能调优方法
Oracle是一个高性能数据库软件。
用户可以通过参数的调整,达到性能的优化。
性能优化主要分为两部分:一是数据库管理员通过对系统参数的调整达到优化的目的;二是开发人员通过对应用程序的优化达到调整的目的。
在此,仅就系统参数的调整进行探讨,而不涉及应用程序的优化。
对系统参数的调整,可以分为以下几个部分:调整内存分配系统全局区(SGA)是一个分配给Oracle 包含Oracle 数据库实例控制信息的内存段。
SGA的大小对系统性能的影响极大,其缺省参数设置只适用于配置很低的计算机,不适应收入系统现有设备的需要。
这些参数若不作调整,会对系统资源造成巨大浪费。
就收入系统的Alpha 1200而言,SGA的大小以160兆左右为宜。
初始化参数文件中的一些参数对SGA的大小有决定性的影响。
参数DB-BLOCK-BUFFERS(SGA中存储区高速缓存的缓冲区数目),参数SHARED-POOL-SIZE(分配给共享SQL区的字节数),是SGA大小的主要影响者。
DB-BLOCK-BUFFERS参数是SGA大小和数据库性能的最重要的决定因素。
该值较高,可以提高系统的命中率,减少I/O。
每个缓冲区的大小等于参数DB-BLOCK-SIZE的大小。
Oracle 数据库块以字节表示大小。
Oracle SGA区共享池部分由库高速缓存、字典高速缓存及其他一些用户和服务器会话信息组成,共享池是最大的消耗成分。
调整SGA区各个结构的大小,可以极大地提高系统的性能。
调整Library Cache库高速缓存(Library Cache)中包含私用和共享SQL区和PL/SQL区。
调整SGA的重要问题是确保库高速缓存足够大,以使Oracle能在共享池中保持分析和执行语句,提高语查询V$LIBRARYCACHE 数据字典视图句分析和执行效率,降低资源消耗。
通过比较Library Cache的命中率来决定它的大小。
(其中,pins表示高速缓存命中率,reloads表示高速缓存失败)SQL〉SELECT SUM(pins),SUM(reloads) FROM v$librarycache;如果sum(reload)/sum(pins)≈0,说明Library Cache的命中率比较合适,若大于1,则需要增加共享池(SHARED-POOL-SIZE)的大小(在初始化参数文件中)。
Oracle的性能优化剖析
Oracle的性能优化:要想让你的Oracle数据库软件运行的效率比较高,就需要在性能上进行合理的优化。
Oracle的性能优化可以从四个不同的角度进行,首先是对操作系统级的调整(包括硬件平台的调整和软件平台的调整),接下来是对ORACLE数据库性能参数的调整,然后是对数据库设计的调整,最后是对SQL的调整。
一、操作系统级的调整Oracle和其他软件产品一样,是要运行在一定的环境下的。
这个环境包括:网络环境服务器硬件配置操作系统其他软件的影响1、网络环境基本上所有的数据库应用不会是单纯的服务器段应用,为了保证客户端访问服务器的性能较好,需要有网络带宽的保障,以避免由于网络原因造成SQL查询变慢。
2、服务器硬件配置为服务器配置性能较好的CPU:cpu资源的不足令查询变慢。
当查询超过了oracle服务器的cpu性能时,你的数据库性能就受到cpu的限制。
要想使Oracle的运行效率提高,最好为服务器配置性能较好的CPU,最好是64位的CPU,以提高分析速度;通常在大型应用中会为服务器配置多个CPU,以增加并行处理能力。
为服务器分配足够的内存:Oracle的运行在启动时会从内存中分配一块SGA,而这部分内存的大小在一个专用Oracle系统中几乎占用服务器内存的一大半。
系统上总的可用内存应该以所有系统成员均具有足够的的内存且功能处于最佳状态来配置。
假定服务器配置了足够的内存,通常的经验内存配置为用等,即用部分磁盘区域补充物理内存。
为了避免I/O争用,不要将虚拟内存空间与其他Oracle数据库数据文件放在同一分区上。
合理设置磁盘I/O:Oracle的运行是离不开磁盘读写的,Oracle的配置文件、数据文件、控制文件、日志文件都存储于磁盘上。
大家都知道,I/O请求包括数据定位、等待、数据传输三个主要部分,其中又属数据定位花费的代价最高。
合理的设置服务器磁盘I/O,可以避免I/O争用,提高Oracle 的性能。
通常,我们采用将数据文件、日志文件分磁盘(分分区)存储,以避免I/O争用。
Oracle性能调优
千里之行,始于足下。
Oracle性能调优
Oracle性能调优是指通过对数据库系统进行各种配置和优化,以提升数据库的响应速度、并发能力和稳定性,以满足用户的需求。
以下是一些常见的Oracle性能调优技巧:
1. 硬件配置:增加服务器的内存、CPU和磁盘等硬件资源,以提高数据库的整体性能。
2. SQL优化:通过检查和优化SQL语句,去除不必要的查询、索引不匹配等问题,以提高查询性能。
3. 索引优化:根据实际查询访问模式,设计合适的索引并定期进行重建和维护,以加快查询速度。
4. 数据库参数优化:调整Oracle数据库的各项参数,如SGA、PGA、缓冲池等,以提升数据库的性能。
5. 分区表和分区索引:将大表分割为多个小表,并使用分区索引来提高查询效率和维护性能。
6. 批处理操作:对于大批量的数据操作,尽量使用批处理操作,减少物理I/O次数,提高处理效率。
7. 数据库统计信息收集:定期收集和更新表的统计信息,以便查询优化器做出更准确的查询计划。
第1页/共2页
锲而不舍,金石可镂。
8. 资源管理:合理配置Oracle数据库的资源管理策略,如设置合适的连接数、并行度等,以实现最大化的利用率。
9. 数据库分析工具:使用各种数据库性能监控和分析工具,如AWR报告、SQL Trace等,来定位和解决性能瓶颈问题。
总结来说,Oracle性能调优是一个持续优化的过程,需要不断地监测、分析、调整和测试,以实现最佳的数据库性能。
同时,在调优过程中需根据具体情况进行有针对性的优化措施,以达到最好的性能效果。
Oracle数据库优化与调优
Oracle数据库优化与调优Oracle是目前市场上应用最广泛的数据库管理系统之一,而随着业务量的不断增长和数据量的持续膨胀,如何优化和调优Oracle数据库的性能已成为企业数据管理领域必须面对的问题。
本文将就Oracle数据库的优化调优进行详细阐述,帮助读者更好地了解Oracle数据库优化与调优的方法和技巧。
一、Oracle数据库优化1.硬件优化硬件优化是Oracle数据库优化的重要方面,可以通过增加机器内存、扩展硬盘空间、提高网络速度等方式来优化硬件资源。
Oracle数据库安装时需要设置多个参数,包括内存参数、网络参数和磁盘IO参数等。
根据具体的硬件配置和业务需求,可以适当调整这些参数。
2.数据库结构优化数据库结构优化可以提高Oracle数据库的查询效率。
常见的数据库结构优化包括创建索引、分区表、视图和物化视图等。
其中,索引可以加速查询,分区表可以减少查询时间,视图和物化视图可以避免重复计算,从而提高Oracle数据库的性能。
3.SQL语句优化SQL语句优化是优化Oracle数据库性能的关键。
在设计SQL语句时,应该尽量避免使用不必要的关联查询和子查询,同时要避免使用通配符查询。
可以使用SQL Trace和Explain Plan等工具来评估SQL语句的性能,并根据评估结果进行调整。
4.Oracle性能监测和故障诊断Oracle性能监测和故障诊断是保障Oracle数据库高性能运行的保障。
Oracle Enterprise Manager和Grid Control是监测、管理和诊断Oracle 数据库的常见工具,可以监测各种Oracle数据库的性能指标、诊断故障和进行自动管理。
5.数据库升级和迁移随着业务的不断扩展,数据量也会不断增加,因此数据库升级和迁移已成为Oracle数据库运维中不可或缺的环节。
在进行数据库升级和迁移时,需要先做好充分的准备工作,包括备份数据、检查硬件和网络环境等。
同时,也需要在升级和迁移过程中,严格遵循相关安全规范,确保数据的完整性和可靠性。
oracle 调优参数
oracle 调优参数【实用版】目录1.Oracle 数据库调优的重要性2.Oracle 数据库调优的方法3.Oracle 数据库性能调优工具4.Oracle 数据库调优的实践经验5.Oracle 数据库性能调优的解决方案正文Oracle 数据库调优的重要性Oracle 数据库在社会的各个领域有着广泛的应用,特别是在client/server 模式的应用中。
然而,随着数据量的不断增大,应用开发者往往会遇到整个系统的性能显著下降的问题。
为了解决这个问题,我们需要从数据库服务器、网络 I/O、应用程序等各个方面对整个系统进行调整,以充分发挥 Oracle 的效能。
Oracle 数据库调优的方法Oracle 数据库调优主要包括以下几个方面:1.数据库服务器:我们需要对数据库服务器进行优化,以提高其处理能力。
这包括对数据库实例的配置进行调整,以便更好地分配系统资源,以及对数据库的物理存储结构进行优化,以提高存储效率。
2.网络I/O:我们需要对网络I/O进行优化,以提高数据的传输速度。
这包括对网络协议进行调整,以提高网络吞吐量,以及对网络带宽进行优化,以提高网络的传输能力。
3.应用程序:我们需要对应用程序进行优化,以提高其执行效率。
这包括对程序代码进行优化,以提高其执行速度,以及对程序的运行环境进行优化,以提高其运行效率。
Oracle 数据库性能调优工具Oracle 数据库性能调优工具主要包括以下几个:1.AWR(Automatic Workload Repository):AWR 是 Oracle 数据库性能调优的一个核心工具,它可以自动收集数据库的工作负载信息,并提供一系列的性能指标,以帮助我们分析数据库的性能问题。
2.ASH(Automatic Storage Management):ASH 是 Oracle 数据库的一个存储管理工具,它可以帮助我们优化数据库的物理存储结构,以提高数据库的性能。
3.V 视图:V 视图是 Oracle 数据库性能调优的一个辅助工具,它可以帮助我们查看数据库的性能统计信息,以帮助我们分析数据库的性能问题。
oracle数据库性能调整和优化涉及到那些问题
Oracle 数据库性能调整和优化涉及到那些问题数据库应用的类型是复杂的,有大量用户同时更新数据库的联机事务处理应用(如银行储蓄系统)、对海量数据进行查询并生成报告的数据仓库应用(如分析商场销售数据的决策支持系统)、在互联网上大量用户同时查询和更新数据的联机事务处理应用(如网上银行应用)等等。
为了满足与适应各种各样的商业应用,使各种不同的应用在不同的环境下都能达到最优的状态,Oracle 数据库系统提供了大量的非常灵活的可调节内容。
为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。
优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的。
分析评价Oracle数据库性能主要有数据库吞吐量、数据库用户响应时间两项指标。
数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即“数据库用户响应时间=系统服务时间+用户等待时间”。
因此,获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。
数据库性能优化包括如下几个部分:∙调整数据结构的设计这一部分在开发信息系统之前完成,程序员需要考虑是否使用Oracle数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
∙调整应用程序结构设计这一部分也是在开发信息系统之前完成的。
程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。
不同的应用程序体系结构要求的数据库资源是不同的。
∙调整数据库SQL语句应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL 语句的执行效率最终决定了Oracle数据库的性能。
Oracle公司推荐使用Oracle语句优化器(Oracle Optimizer)和行锁管理器(Row-Level Manager)来调整优化SQL语句。
oracle优化方案
千里之行,始于足下。
oracle优化方案有很多方法可以优化Oracle数据库性能,以下是一些常用的优化方案:1. 确保适当的数据库设计:良好的数据库设计是优化性能的基础。
这包括正确的表结构设计、索引的创建和维护以及适当的数据类型选择等。
2. 优化SQL查询语句:优化SQL查询是提高数据库性能的关键。
可以通过分析查询计划、重写复杂查询、减少不必要的连接和子查询等方式来优化查询语句。
3. 创建适当的索引:索引是加速查询的关键。
确保创建适当的索引,可以大大提高查询性能。
可以根据查询频率和字段选择性等因素来选择创建索引的字段。
4. 定期收集统计信息:Oracle提供了收集统计信息的工具,用于优化查询计划的生成。
定期收集统计信息可以帮助Oracle优化器生成更优的查询计划。
5. 合理配置Oracle参数:Oracle的许多参数可以配置,以提高性能。
例如,可以调整内存参数和并发连接参数来提高性能。
6. 使用合适的存储布局:合适的存储布局可以最大限度地减少磁盘I/O操作,提高性能。
使用适当大小的数据块、合理的表空间和分区等可以优化数据库的存储布局。
7. 定期优化数据库物理结构:随着数据库使用的增加,物理结构可能会出现碎片化。
通过定期的重建和重组可以消除碎片,恢复数据库性能。
第1页/共2页锲而不舍,金石可镂。
8. 使用合理的并发控制:并发控制是数据库系统中重要的一部分。
使用适当的并发控制策略可以避免数据冲突和死锁,提高性能。
9. 使用缓存和缓存技术:Oracle提供了缓存和缓存技术来提高性能。
可以使用数据库缓存和应用程序级缓存等来减少磁盘I/O操作和网络开销。
10. 使用分布式数据库:如果数据库负载过重,可以考虑使用分布式数据库来分摊负载,提高性能。
以上是一些常用的Oracle优化方案,具体的优化方案需要根据实际情况进行选择和调整。
Oracle性能调优原则
Oracle性能调优原则
1.将性能调优看作一个整体
在进行性能调优时,不要仅仅关注其中一个特定的参数,而是要从整体的角度来看待。
要把所有的参数列在一起,尝试综合考虑如何实现性能的最优调整。
2.将可能改善性能的调整类型确定出来
在开始性能调优时,最重要的事情就是要把可能改善系统性能的调整类型确定出来,这种调整可以分为下面几类:
(1)增加硬件资源,如增加CPU数量或内存容量;
(2)更新数据库或应用软件版本;
(3)在不同的操作系统上运行应用,或者在操作系统上进行优化;
(4)既可改善硬件资源,又可改善软件资源;
(5)对数据库设计进行优化,改善SQL语句,改善存储结构;
(6)对数据库或应用中用到的参数和参数进行调整;
(7)对系统功能和功能结构进行重新设计和安排。
3.建立参考值
确定出所有可能改善性能的参数后,就要根据系统具体情况,确定出参考值。
参考值是根据性能调优的整体目标而确定的,它可以作为调整参数时的依据。
二、调优实施步骤
1.评估当前系统的性能
首先,要对当前系统的性能进行评估。
提高ORACLE数据库性能优化策略
提高ORACLE数据库性能优化策略作为一名幼儿相关工作者,多年来一直致力于幼儿教育领域,见证了幼儿教育的蓬勃发展。
如今,信息技术在教育行业的应用越来越广泛,数据库性能优化成为提高教育信息化水平的重要一环。
本文将以ORACLE数据库为例,为大家介绍一些提高数据库性能的优化策略。
一、合理规划数据库表结构1.选择合适的字段类型:在设计数据库表时,合理选择字段类型至关重要。
例如,如果一个字段的值只包含数字,那么可以使用NUMBER 类型,而不是VARCHAR类型。
这样可以提高数据的存储效率。
2.设置合理的数据表分区:对于大量数据的表,可以考虑使用分区技术。
分区可以提高查询效率,减少锁竞争,降低维护成本。
在实际应用中,可以根据业务需求和数据特点,选择合适的分区策略。
3.使用合适的索引:索引可以提高查询速度,但过多或不当的索引会影响数据库性能。
在设计索引时,应充分考虑查询需求,创建合适的索引。
同时,定期监控索引的使用情况,根据实际效果调整索引策略。
二、优化查询语句1.避免使用SELECT:尽量避免使用SELECT查询所有字段,而是通过指定需要查询的字段名称,减少数据的传输量。
2.使用JOIN替代子查询:在适当的情况下,使用JOIN操作可以提高查询效率。
同时,尽量减少子查询的使用,以降低数据库的负担。
3.合理使用聚合函数:在查询中,尽量使用聚合函数(如COUNT、SUM、MAX等)进行数据统计,可以提高查询效率。
4.利用缓存:对于频繁查询且数据变化不频繁的统计数据,可以考虑将查询结果缓存到内存中,减少数据库的访问次数。
三、数据库维护与监控1.定期优化表:通过使用ORACLE的优化工具,如DBMS_UTILITY.ANALYZE_TABLE,定期分析表的统计信息,以便更好地优化表的结构和性能。
2.定期重建索引:随着时间的推移,索引可能会因为数据的增删改而发生碎片化。
定期重建索引可以提高查询效率。
3.监控数据库性能:通过使用ORACLE的性能监控工具,如AWR报告,监控数据库的性能,发现并解决潜在的性能问题。
Oracle 数据库性能调优的一些经验与体会
Oracle 数据库性能调优的一些经验与体会[摘要] 本文主要介绍在HP8500服务器上实现Oracle 9i数据库管理工作中性能调优的方法与系统参数调整的原则。
[关键字] 共享池,缓存,栓锁,重写日志,回滚段,临时表空间,检查点,I/O从事数据库系统维护工作已经有一段时间了,多少有一些工作工作经验,想与大家作个交流。
数据库性能调节与优化是DBA(数据库管理员)的一项重要工作。
DBA如何才能把这项工作做好哪?首先,购买功能和性能更强的硬件是性能问题的一种解决办法,我们把Oracle 数据库安装运行于HP8500服务器,应用服务器采用HP ML570。
但是,硬件往往非常昂贵,且随着软件的升级和复杂化,数据的增加,再好的硬件也会过时。
DBA 必须最好地利用现有的硬件资源,想其他办法提高系统的性能。
一.O racle 数据库性能调优方法Oracle 给出了DBA 应当采用的性能调节的5大步骤。
一般而言,在所有的情况下,都应从第1步开始,以避免在解决问题的过程中又产生新的问题。
在此同时,也应注意到,随着步骤的深入,调节所影响的范围和深度也在加大。
下面是调节的步骤:1. 优化设计:调节系统结构设计和应用系统的设计。
2. 优化应用程序:在很多情况下,写的很差的查询语句是性能问题的根源。
DBA 应当在鼓励开发人员调整SQL 查询语句的性能。
(前两个步骤通常是系统体系结构设计者和应用程序开发人员的责任;但是,DBA也可能参与应用程序的优化。
)3.优化内存结构。
在应用程序调节后,恰当的配置和调节内存结构会对应用和数据库有极大的性能影响。
Oracle 应当有足够的空间分配给SQL/PLSQL、数据字典缓冲区、数据缓冲区、重做日志缓冲区以获取高的性能。
这些体现在以下几个方面:A.对已存在于内存中的数据库数据更快的查询。
B.减少RDBMS 对SQL 不必要的分析。
C.消除操作系统的页面交换,特别是将SGA交换到磁盘。
4. 优化I/O:Oracle 设计成防止I/O 负面地影响应用系统的性能。
oracle优化方法总结
千里之行,始于足下。
oracle优化方法总结Oracle优化是提高数据库性能和响应力量的重要步骤。
本文总结了一些常见的Oracle优化方法。
1. 使用索引:索引是提高查询性能的主要方法。
通过在表中创建适当的索引,可以加快查询速度,并削减数据访问的开销。
但是要留意不要过度使用索引,由于过多的索引会增加写操作的开销。
2. 优化查询语句:查询语句的效率直接影响数据库的性能。
可以通过合理地编写查询语句来提高性能。
例如,使用JOIN来替代子查询,尽量避开使用通配符查询,使用LIMIT来限制结果集的大小等。
3. 优化表结构:表的设计和结构对数据库的性能也有很大的影响。
合理的表设计可以削减数据冗余和不必要的数据存储,提高查询速度。
例如,适当地使用主键、外键和约束,避开过多的数据类型和字段等。
4. 优化数据库参数设置:Oracle有很多参数可以用来调整数据库的性能。
依据具体的应用场景和需求,可以依据状况调整参数的值。
例如,调整SGA和PGA的大小,设置合适的缓冲区大小,调整日志写入方式等。
5. 使用分区表:当表的数据量很大时,可以考虑将表分成多个分区。
分区表可以加速查询和维护操作,提高数据库的性能。
可以依据时间、地域、业务等来进行分区。
6. 优化存储管理:Oracle供应了多种存储管理选项,如表空间和数据文件管理。
合理地安排存储空间和管理数据文件可以提高数据库的性能。
例如,定期清理无用的数据文件,使用自动扩展表空间等。
第1页/共2页锲而不舍,金石可镂。
7. 数据压缩:对于大量重复数据或者冷数据,可以考虑使用Oracle的数据压缩功能。
数据压缩可以削减磁盘空间的使用,提高IO性能。
8. 使用并行处理:对于大型计算或者批处理任务,可以考虑使用Oracle的并行处理功能。
并行处理可以将任务分成多个子任务,并行执行,提高处理力量和效率。
9. 数据库分区:对于大型数据库,可以考虑将数据库分成多个独立的分区。
数据库分区可以提高数据的并行处理力量,削减锁竞争和冲突,提高数据库的性能。
oracle性能调优
Oracle数据库优化是一个很大的课题,我没有办法说的非常全面和深入,我也没有非常全面地掌握。
在这里,我选取了一些针对我们这种类型的系统有效并且易行的优化方式,提供给大家。
如果哪位同仁发现文档中有问题请通知我,我们共同探讨。
一.Redo logRedo log在数据库中起着非常重要的作用,可以用来进行例程和介质恢复,以及事务的撤销。
是频繁读写的文件。
当我们执行DML操作时,就会产生redo。
在数据库创建时,默认创建3组日志,每组一个文件,每个文件50M,然后循环使用。
因为我们这种类型的系统属于OLAP,跑批的时候都是一些比价大的DML操作,redo 产生的比较多。
关于redo 的原理和作用就不再详述。
有以下几种相关优化方式:增加redo日志文件大小,每个300M-1G在数据库创建时,我们可以改变默认日志文件的大小。
在数据库创建以后,我们只能手动再去改变。
方式是删除原有日志,增加新的日志。
第一步,查看当前日志:select a.group#,a.bytes/1024/1024||'M' log_size,a.status,b.member from v$log a left join v$logfile b on A.GROUP#=b.group#第二步,删除原有日志注意事项:a. 日志的当前状态必须是inactive的才可以删除,active状态说明日志中的记录还没有被同步到数据文件中,这个需要等待一定时间之后才会变成inactive状态;current状态是当前正在写的日志,也不能删除。
b. 日志组的数量不能低于2组。
删除日志命令:因为当前只有group 2是inactive,所以只能删除group 2,使用以下删除命令:alter database drop logfile group 2这时只剩下两组日志,因为日志组不能低于2组,所以不能再删除,只能添加日志组之后再删除。
c. 执行删除之后该日志的物理文件还是存在的,可以删除,但是这个动作很危险,需要小心。
ORACLE数据库性能调整与优化分析
ORACLE数据库性能调整与优化分析摘要Oracle数据库的主要作用是对多种业务形式进行处理,保障各项业务的稳定运行,因此,Oracle数据库应用系统性能优化至关重要。
对此,本文首先对Oracle数据库进行了介绍,然后对ORACLE数据库性能调整与优化的必要性进行了分析,并对具体的性能调整优化策略进行了详细探究。
关键词Oracle数据库;性能;优化前言现如今,oracle数据库技术日漸完善,其应用范围也越来越广泛,但是,随着数据信息的不断增加,oracle数据库的应用安全性也受到了较大威胁,在数据库信息的实际应用中,偷取、破坏等问题较为常见,这样就会影响oracle数据库的正常运行,甚至会造成信息丢失的问题。
因此,亟须对oracle数据库使用性能进行调整和优化。
1 Oracle数据库随着oracle数据库的快速发展,其规范性逐渐加强,使用性能也日渐完善,oracle数据库是一种通用型数据库,具有完善的数据管理功能,其害是一项关系型数据,在实际应用中,可以对中业务的数据关系进行仔细清理,从而构建出针对性较强的数据库结构形式,然后将所有信息数据传递至计算机终端,通过应用计算机终端相关软件,为oracle数据库运行提供良好的操作环境。
在oracle数据库的分布式操作环境中,可以对数据库中的各类信息进行及时更新,从而满足不同数据使用者的查询需要。
现如今,oracle数据库注意被应用于公共部门中,比如医院、银行等等,oracle数据库的内存结构形式如图1所示。
2 ORACLE数据库性能调整与优化的必要性数据库是一种数据集合,其具有组织性、共享性特征,并被长期存放于计算机中。
数据库系统是由很多部分所组成的,包括计算机硬件设备、计算机软件、数据库管理人员等等,在各项信息系统操作过程中,都需要依赖后台数据库的辅助。
在大数据时代,数据资源量逐渐增多,网络用户对于数据库的访问量逐渐增大,同时,对于数据库的访问要求也越来越高,很多数据信息被长期读取,并被修改和存储,这样很容易增加数据库负荷,导致数据库负载增加,很难对系统内部资源进行科学合理的分配,同时还会影响数据库的响应效率,无法更好地服务于数据库访问用户。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
andJan Mark HolzerSenior Member of Technical StaffTru64 UNIX Engineering Groupjmh@Friday, March 29, 2013<Revised March 5, 2002> Configuring Tru64 V5.1 for Optimal PerformancewithORACLE 8.1.7.x/9iOverviewThis is a short writeup on recommended settings to /etc/sysconfigtab in a Tru64 5.1 environment running ORACLE 8.1.7.x and/or 9iIn the past there have been several resources/documents providing recommendations on how to set certain tunables in /etc/sysconfigtab but there has always been a fair amount of confusion which guidelines to follow.This document attempts to give some generic guidelines on how to set some key tunables applicable to an ORACLE environment. The assumption is that the ORACLE version used is8.1.7 or higher. This is important as starting 8.1.7 ORACLE is using AdvFS‟s directIO capabilities to bypass the buffer cache (UBC) part of the filesystem layers.Recommended Patches and Operating System VersionsAs of February 2002 the recommended versions to use for 8.1.7/9i installations are ∙Tru64 and TruCluster V5.1 with patch kit PK4/BL18∙Only Tru64 V5.1/PK4 will require the installation of a separate patch for AdvFS, this patch prevents a problem where an application using AdvFS directIO (such as ORACLE) orD_SYNC may re-read stale data on a CFS cliento The patch identifier is : T64V5118-C0091200-12603-Manual-20011220.tar ∙Tru64 and TruCluster V5.1A with PK1/IPKo The aboved mentioned patch is NOT required for systems running 5.1A/IPK Key TunablesVM SubsystemThe following tunables should be modified in the …vm‟ subsystem section of /etc/sysconfigtabnew_wire_methodThis tunable should be set to …0‟ if SSM memory is used (ie. s sm_threshold is at this default value of 8MB). In Tru64 V5.1 there‟s an interaction between the AIO (Asynchronous I/O) and page wiring mechanism which may result in high system time.This issue can be resolved by setting new_wire_method to …0‟.There‟re n o negative performance impacts by disabling this tunable.To avoid the interaction between new_wire_method and ssm_threshold would be to use granularity hints memory (gh_regions or rad_gh_regions) to pre-wire memory for the database to use.See the section on gh_chunks and rad_gh_regions for more information on GH memory. Recommended value for new_wire_method is ‘0’rad_gh_regions / gh_chunksTru64 supports two options on how to allocate shared memory for ORACLE. The “traditional” option is to use SSM memory which is controlled via the tunable ssm_threshold in the …ipc‟ subsystem. The default on Tru64 V5.1 is to use SSM (Segmented Shared Memory) memory. The other option available is to use granularity hints or also known as large pages.This memory cannot be used for any other purpose, nor can it be returned to the system or reclaimed when not being used it will solely be used by the database for its SGA (System Global Area) or any other application using shmget()/nshmget() to allocate shared memory..On NUMA-aware systems (GS80, GS160, and GS320), the gh_chunks attribute affects only the first Resource Affinity Domain (RAD).Using large pages is the preferred method on GS80/160/320 systems running ORACLE 8.1.7. Large pages can also be configured on non-GS series systems such as the ES, DS and GS140 platforms, on these systems the tunable gh_chunks is used instead of rad_gh_regions..Tru64 V5.1 supports using large 4MB pages "granularity hints" by setting the rad_gh_regions either using contiguous or stripe algorithms, on non-GS series platforms the gh_chunks parameter is used.The amount of GH memory configured on a system can be viewed using the command “vmstat –P”.The syntax to enable large pages support depends on the platform it is implemented on:GS80/GS160/GS320 platformsThe amount of memory per RAD/QBB in MB is specified via the correspondingrad_gh_regions tunable.The naming convention for this tunable is to specify rad_gh_regions[RAD#] , for example to allocate 2GB in QBB0 one would specify 2048 for rad_gh_regions[0], ie. rad_gh_regions[0] = 2048 .You should take your planned/projected Oracle SGA size and divided by the number ofQBBs/RADs your GS system has configured. For each rad_gh_regions[x] (where …x‟ represents the QBB identifier (from 0-7)) you‟d specify the required value in Megabytes (MB).The sum of rad_gh_regions[*] should be set to the size of the Oracle SGA, however one might consider allocating a larger value for rad_gh_regions in order to be able to resize the Oracle SGA without having to reboot the system (changes to rad_gh_regions require a system reboot).Setting rad_gh_regions to a larger value than initially required/calculated can provide the benefit of being able to allocate a larger SGA without having to reboot the system (rad_gh_regions is not a dynamic system tunable).Shared memory should generally be allocated in striped mode in order to distribute memory across all available RADs, changing to a sequential allocation policy may adversely affect performance as it may cause hot-spots in individual RADs.Non-GS series platforms (ES, DS and GS140 systems)On these systems the gh_chunks tunable is used to configure granularity hints memory. As the overall performance gain using gh_chunks is usually only in the range of 7% it might be not an interesting option for most systems due to its complexity in implementation.However some systems might still benefit from using gh_chunks, especially ORACLE environments which are having a very large number of clients connecting and disconnecting from the database. In these type of environment using gh_chunks can actually give a significant performance increase. gh_chunks is calculated by dividing ORACLE‟s SGA size by 4MB and then specifiying the value for gh_chunks (ie. setting to gh_chunks = 1000 would allocate 4GB of memory for GH memory).Recommended setting of rad_gh_regions is the size in MB of the ORACLE SGA / # of QBBs in your system. For example if you’d have a GS320 which has 64GB of main memory in 8 QBBs an d your ORACLE SGA is sized at 16GB you’d specify a value of (at least) 2048 for each rad_gh_regions tunable (from rad_gh_regions[0] to rad_gh_regions[7]).On non-NUMA/GS platforms gh_chunks should be set to at least the SGA size divided by 4MB. If rad_gh_regions or gh_chunks are being used ssm_threshold must be disable (in the ‘ipc’ subsystem) by setting ssm_treshold=0ubc_maxpercentAs ORACLE 8.1.7 is using AdvFS directIO there‟s no need to artificially restrict the UBC, in the past it has been recommended to cut down to a small(er) value to prevent (double) caching in the filesystem. Setting this tunable to a very low value may cause contention in the kernel and therefore impact performance negatively.Recommended value for ubc_maxpercent would be at least 70% and should not be set to a value smaller than 35%.ubc_borrowpercentThe value for this tunable is a percentage of memory above which the UBC is only borrowing memory from the virtual memory subsystem.Paging does not occur until the UBC has returned all its borrowed pages. Usually the default value of 20 is a good fit for most systems. If the system is a database server without any interactive users active one might consider lowering this value to improve backup performance. Recommended value for ubc_borrowpercent is 20% (the default). For database server only systems might consider setting it to 10%.vm_ubcseqpercentThis parameter controls the maximum percentage of UBC memory that can be used to cache a single file. vm_ubcseqstartpercent is used to control when the UBC checks this limit.The default value of 10% is usually a good fit for most systems, however if the system is a database server only environment and to improve performance during backups one might consider reducing this value to 5%.vm_ubcseqstartpercentThis value is a threshold (a percentage of the UBC in terms of its current size) that determines when the UBC starts to check the percentage of UBC pages cached for each file object.If the cached page percentage for any file exceeds the value of vm_ubcseqpercent, the UBC returns that file's UBC LRU pages to virtual memory.Prior to Version 5.0, vm_ubcseqstartpercent was defined to be a percentage of available memory. Starting with Version 5.0, this attribute is defined to be a percentage of ubc_maxpercent, which is itself a percentage of available memory. The definition change has no effect if the value ofubc_maxpercent is at its default value (100 percent).However, the definition change has implications if the value for ubc_maxpercent has been lowered.For example, if on a V4 system, the customer lowered ubc_maxpercent to 80 and setvm_ubcseqstartpercent to 20, the value for vm_ubcseqstartpercent should be set to 25 on the V5 system (assuming the value for ubc_maxpercent is still set to 80) to specify the same thresholdas used on the V4 system.Recommended value is to keep the default of 50%vm_ubcdirtypercentThe percentage of pages that must be dirty (modified) before the UBC starts writing them to disk. Usually the default works pretty well, however on systems with lots of filesystem/UBC activity increasing the value for this tunable may increase the ability to re-read from the filesystem cache. Recommended value is the default value of 10% but on systems which could benefit from keeping filesystem pages in the UBC it could be increased to 90%.vm_swap_eagerThis tunable controls on how the system will use the available swap space. For a database server environment the swap allocation mode could be chang ed from eager (the default) to …lazy‟ Setting “vm_swap_eager = 1”(default) indicates that system is in eager swap allocation mode.If you are running in eager swap allocation mode, sum the anonymous virtual memory for all processes and add at least 10% to size your swap space.Use Eager Swap Allocation mode for highly reliable systems that over commit memorySetting “vm_swap_eager = 0” indicates that the system is in deferred swap allocation modeIf you are running in lazy swap allocation mode, sum the anonymous virtual memory for all processes and subtract half of the physical memoryUse lazy swap allocation mode for any system that does not over commit memory. Ifvm_swap_eager has been set to …0‟ and the system would run out of available swap space apro cess which would attempt to allocate swap space will get killed. There‟s no mechanism to protect processes being deleted in this situation.Recommended setting in an ORACLE database server environment which has enough memory available is to set vm_swap_eager to ‘1’, however if the workload is well understood and the system has been configured with enough memory to prevent it from swapping vm_swap_eager can be set to ‘0’AdvFS SubsystemThe following tunables should be modified in the AdFS subsystemAdvfsSyncMmapPagesThis parameter controls on how AdvFS flushes dirty mmap()‟d pages using the sync() system call. Setting this parameter to …0‟ will prevent AdvFS from trying to flush pages of files which have been mmap()‟d. The default value of …1‟ wil l cause mmaped pager to be written asynchronously to disk during a sync() system call.As most applications which are using mmap() to map pages/files into memory are using their own synchronization via the fsync() call there‟s no need for AdvFS to perform the same operation again. It will also avoid AdvFS trying to flush pages which should actually stay in memory. Recommended value is ‘0’AdvfsCacheMaxPercentAdvfsCacheHashSizeAdvfsCleanupPercentAdvfsMaxFreeAccessPercentAdvfsMinFreeAccessThese tunables are defunct as of Tru64 V5.1 and are no longer used to tune/manage the AdvFS cache. Instead the UBC parameters ubc_maxpercent and ubc_minpercent should be used to tune the filesystem cacheVFS SubsystemThe following tunables should be modified in the VFS subsystemfifo_do_adaptivefifo_do_adaptive is one of the "tunables" where the default value may not been chosen perfectly if the system is running as a database server.The default setting of the fifo_do_adaptive parameter enables an alternate algorithms in the fifo routines. The intent has been to come up with an optimal "working set" size, and then attempt to perform fewer data transfer operations, but of a larger size.This works reasonably well for applications which perform data transfers of a uniform or near-uniform size. This does not work so well for *some* applications which perform data transfers of a random size (i.e.; specifically those which started out performing transfers such that the fifo code determined an optimal transfer size).This works poorly for some applications in which the peer processes operate in sync (meaning procA transfers to procB, then waits for procB's response).By disabling the fifo_do_adaptive parameter, performance for some applications will degrade,and for other applications will improve. The performance change depends on how the pipes get used. For ORACLE environments it has been proven to be beneficial to set this parameter to a value of …0‟Recommended value is to set fifo_do_adaptive to ‘0’IPC SubsystemThe following tunables should be modified in the IPC subsystemssm_thresholdssm_thresold controls which type of shared memory implementation is used the default in Tru64 V5.1 is to SSM (Segmented Shared Memory) memory. You only need to set a different value (…0‟) if large pages are being used. In this case ssm_threshold should be set to …0‟.Recommended value is to leave ssm_threshold at its default value on non GS series systems and if rad_gh_regions or gh_chunks are being used to s et ssm_threshold to ‘0’shm_maxThis tunable controls the maximum size for a single shared memory region. ORACLE will concatenate multiple shared memory regions if the SGA is larger then the value configured for shm_max. As of Tru65 V5.1 the size for a single shared memory segment could be larger than2GB. However other applications using shared memory on the same system may have problems with shared memory segments larger than 2GB, in order to avoid compatibility issues it is recommend to set the maximum size for an individual shared memory segment to 2GB Recommended value is 2GB – 8MB , ie. 2139095040 if only ORACLE is used on the system the size of shm_max can be increased to 4GB – 16MB ie. 4278190080.shm_mniThis tunable specifies the maximum number of shared memory regions that can be used on the system at one time.Recommended value for shm_mni is 256shm_segThis tunable specifies the maximum number of System V shared memory regions that can be attached to a single process at one time.Recommended value for shm_seg is 128INET SubsystemThe following tunables should be set in the inet subsystem. In addition the guidelines for tuning Internet server should be followed a document on how to tune high-performance Internet servers can be found at/docs/best_practices/BP_INTUNING/TITLE.HTM In addition recommendation specific to GigaBit Ethernet performance can be found at /docs/best_practices/BP_GIGABIT/TITLE.HTMudp_sendspaceDefault send buffer size for UDP requests. In environments using Gigabit Ethernet or very heavy network activity you may want to set the value for this tunable to an even higher default value than the one suggested.Recommended value for udp_sendspace is 65536udp_recvspaceDefault receive buffer size for UDP requests. In environments using Gigabit Ethernet or very heavy network activity you may want to set the value for this tunable to an even higher default value than the one suggested.Recommended value for udp_recvspace is 65536PROC SubsystemThe following tunables in the proc subsystem should be changed/adjustedper_proc_stack_sizePer process stack size in bytes. Usually the default value of 8MB for this tunable should be large enough for most ORACLE environments, however in very large installations and dataware house type environments the value should be increased.Recommended value for per_proc_stack_size is 33554432 (32MB)max_per_proc_stack_sizeMaximum per process stack size in bytes. Usually the default value of 32MB for this tunable should be large enough for most ORACLE environments, however in very large installations and dataware house type environments the value should be increased.Recommended value for max_per_proc_stack_size is 536870912 (512MB), depending on the ORACLE environment the maximum stack size can be increased to a maximum value of 3221225472 (3GB)per_proc_data_sizePer process data size in bytes. The value below will set this tunable to the amount of physical memory installed on the system. One could raise the value to a larger value than actual memory available, however this would allow a single process to outgrow a systems main memory and cause extensive swapping and paging. It is highly recommended to stay within the bounds of the available memory for this tunable. One should never raise the tunable to a value larger than the physical memory available plus the configured swap space.Recommended value for per_proc_data_size is 0x40000000000max_per_proc_data_sizeMaximum per process data size in bytes. The value below will set this tunable to the amount of physical memory installed on the system. One could raise the value to a larger value than actual memory available, however this would allow a single process to outgrow a systems main memory and cause extensive swapping and paging. It is highly recommended to stay within the bounds of the available memory for this tunable. One should never raise the tunable to a value larger than the physical memory available plus the configured swap space.Recommended value for max_per_proc_data_size is 0x40000000000per_proc_address_spacePer process address size in bytes. The value below will set this tunable to the amount of physical memory installed on the system. One could raise the value to a larger value than actual memory available, however this would allow a single process to outgrow a systems main memory andcause extensive swapping and paging. It is highly recommended to stay within the bounds of the available memory for this tunable. One should never raise the tunable to a value larger than the physical memory available plus the configured swap space.Recommended value for max_per_proc_data_size is 0x40000000000max_per_proc_address_spaceMaximum per process address size in bytes. The value below will set this tunable to the amount of physical memory installed on the system. One could raise the value to a larger value than actual memory available, however this would allow a single process to outgrow a systems main memory and cause extensive swapping and paging. It is highly recommended to stay within the bounds of the available memory for this tunable. One should never raise the tunable to a value larger than the physical memory available plus the configured swap space.Recommended value for max_per_proc_data_size is 0x40000000000max_proc_per_userMaximum number of processes/tasks a user can create (non-root users). To disable the limits for this tunable one can set it to …0‟.Recommended value for max_proc_per_user is 1024. If the application/environment requires more than 1024 tasks per user the value can be increased accordingly.max_threads_per_userMaximum number of threads a user can create (non root users). ). To disable the limits for this tunable one can set it to …0‟.Recommended value for max_threads_per_user is 4096. If the application/environment requires more than 1024 tasks per user the value can be increased accordingly. maxusersGeneric base tunable used to calculate various other data structures and tunables Recommended value for ES40 class systems and higher is 8192, the value can be increased to the maximum of 16.384.RT Subsystemaio_task_max_numMaximum number of concurrent active AIO tasks.Recommended value should be greater than the maximum of either the DBWR I/O operations or the value of the DB_FILE_MULTIBLOCK_READ_COUNT initialization parameter, whichever is higher.The maximum number of DBWR I/O operations defaults to 8192 unless the_DB_WRITER_MAX_WRITES initialization parameter is specified.A simple formula for this tunable is:(DB_WRITER_MAX_WRITES (default 8192) * DB_WRITER_PROCESSES)+ (PARALLEL_MAX_SERVERS * DB_FILE_MULTIBLOCK_READ_COUNT)+ 10RDG Subsystemmax_objsAt least 5 times the number of Oracle processes per node and up to the larger of 10240 or the number of Oracle processes multiplied by 70.msg_sizeEqual to or greater than the maximum value of the DB_BLOCK_SIZE parameter for the database. Oracle Corporation recommends a value of 32768 because Oracle9i supports different block sizes for each tablespace.max_async_reqAt least 100.Note: A value of 256 might provide better performance. As of PK4/BL18 for TruCluster V5.1 the default value for this parameter has been raised to 1000.max_sessionsAt least the number of Oracle processes plus 2rdg_max_auto_msg_wiresMust be set to 0.RM subsystemrm_check_for_iplDue to an oversight the 9i/RAC installation guide states the value for the parameter must be set to ‘0’ . This is no longer true and the parameter should be left at its default value.Improving the Performance of gettimeofday() in ORACLEThe Oracle Server times many functions as it executes. This is especially true if the INIT.ORA parameter timed_statistics is set to TRUE.These timing functions result in system calls into the OS kernel which can degrade ORACLE performance because the calling process relinquishes the CPU.There is a feature in Tru64 UNIX that gives a process direct access to the operating systems' real time clock.Using this feature will improve performance on a heavily used system. It will also improve performance on a lightly loaded system but it may not be as noticeable.To enable this feature, login as root and issue the following command sequence: mknod /dev/timedev c 15 0chmod 644 /dev/timedevThe above commands only have to be performed for each system or node in a cluster.The /dev/timedev special file will be persistent across system rebootsIn order to use this feature with ORACLE the instance has to be restarted. The existence of/dev/timedev is checked only on instance startup. It is recommended that all instances in a cluster (and hence all nodes) have this feature enabled.This feature is supported on ORACLE versions V7.3 and beyond.Choosing and Enabling IPC Communication Protocols for 8i and 9i ORACLE can use either UDP or RDG (Reliable Datagram) for DLM/IPQ inter-instance communication. Starting with ORACLE 9i the recommendation is to use RDG as the protocol for IPC instead of using UDP.Although ORACLE 8.1.7 does support the use of RDG for communication it is not recommended to enable it but continue to use UDP.In some cases it might be necessary to use UDP as the communication protocol in a 9i environment.The commands below will show on how to enable/disable the different protocols for IPC.To disable NUMA support in ORACLE 8i or 9i use the following commands: cd $ORACLE_HOME/rdbms/libmake -f ins_rdbms.mk numa_offmake -f ins_rdbms.mk ioracleEnabling NUMA support in ORACLE is currently not supported for 8.1.7/OPS and 9.0.1/RAC installations. If you are planning to use RAC or OPS you must have NUMA disabled.To enable Oracle 9i RAC or 8.1.7 Oracle Parallel Servercd $ORACLE_HOME/rdbms/libFor ORACLE 8imake -f ins_rdbms.mk ops_onFor ORACLE 9imake -f ins_rdbms.mk rac_onmake -f ins_rdbms.mk ioracleTo make IPC use the UDP Protocol (default for ORACLE 8i OPS)make -f ins_rdbms.mk ipc_udpmake -f ins_rdbms.mk ioracleTo use Reliable DataGram (RDG) for IPC (default for 9i)make -f ins_rdbms.mk rac_onmake -f ins_rdbms.mk ioracleResources and ReferencesCompaq Websites and Resources∙Tru64 UNIX NUMA Technical Overviewo /faqs/publications/base_doc/DOCUMENTATION/V5 1_HTML/NUMA/TITLE.HTM∙Tru64 UNIX V5.1 Base Operating System Documentationo /faqs/publications/pub_page/V51_DOCS/V51_DOCL IST.HTM∙TruCluster V5.1 Documentationo /faqs/publications/cluster_doc/cluster_51/TCR51_DOC.HTM∙TruCluster ORACLE Best Practice Documentationso Configuring a single instance ORACLE 8i installation on TruCluster V5.1▪/faqs/publications/best_practices/BP_TCR_ORA_SS/TITLE.HTMo Configuring an ORACLE/OPS 8i installation on TruCluster V5.1▪/faqs/publications/best_practices/BP_TCR_ORA_OPS817/TITLE.HTM∙CFS DirectIO Technical Descriptiono /faqs/publications/cluster_doc/cluster_51/TCR51_DOC.HTMORACLE Websites and Resources∙ORACLE 8i Websiteo /ip/deploy/database/8i/index.html?ee.html∙ORACLE Technet 8i Websiteo /products/oracle8i/o /faqs/publications/cluster_doc/cluster_51/TCR51_DOC.HTM∙Products & Serviceso /o /∙What's In Shippingo /prod_avail/as_qry.htm@search.as_init∙Eventso /corporate/seminars_and_events/index.html?content.html ∙Technical Documents (certify, whitepapers,fact sheets, benchmarks)o /o /o /o /appsnet/index.html∙Marketing, Press Releases, Success Stories,Collateralo /corporate/press/index.html?content.htmlo /succst-wwwprd-dcd/plsql/query_success_frame.show_frame_all。