Oracle性能调优——基本参数调整

合集下载

oracle数据库性能调优

oracle数据库性能调优

oracle数据库性能调优⼀:注意WHERE⼦句中的连接顺序:ORACLE采⽤⾃下⽽上的顺序解析WHERE⼦句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最⼤数量记录的条件必须写在WHERE⼦句的末尾.尤其是“主键ID=?”这样的条件。

⼆: SELECT⼦句中避免使⽤ ‘ * ‘:ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个⼯作是通过查询数据字典完成的, 这意味着将耗费更多的时间。

简单地讲,语句执⾏的时间越短越好(尤其对于系统的终端⽤户来说)。

⽽对于查询语句,由于全表扫描读取的数据多,尤其是对于⼤型表不仅查询速度慢,⽽且对磁盘IO造成⼤的压⼒,通常都要避免,⽽避免的⽅式通常是使⽤索引Index。

三:使⽤索引的优势与代价。

优势:1)索引是表的⼀个概念部分,⽤来提⾼检索数据的效率,ORACLE使⽤了⼀个复杂的⾃平衡B-tree结构. 通常,通过索引查询数据⽐全表扫描要快. 当ORACLE找出执⾏查询和Update语句的最佳路径时, ORACLE优化器将使⽤索引. 同样在联结多个表时使⽤索引也可以提⾼效率. 2)另⼀个使⽤索引的好处是,它提供了主键(primary key)的唯⼀性验证.。

那些LONG或LONG RAW数据类型, 你可以索引⼏乎所有的列. 通常, 在⼤型表中使⽤索引特别有效. 当然,你也会发现, 在扫描⼩表时,使⽤索引同样能提⾼效率.代价:虽然使⽤索引能得到查询效率的提⾼,但是我们也必须注意到它的代价. 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时, 索引本⾝也会被修改. 这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 因为索引需要额外的存储空间和处理,那些不必要的索引反⽽会使查询反应时间变慢.。

⽽且表越⼤,影响越严重。

使⽤索引需要注意的地⽅:1、避免在索引列上使⽤NOT , 我们要避免在索引列上使⽤NOT, NOT会产⽣在和在索引列上使⽤函数相同的影响. 当ORACLE”遇到”NOT,他就会停⽌使⽤索引转⽽执⾏全表扫描.2、避免在索引列上使⽤计算.WHERE⼦句中,如果索引列是函数的⼀部分.优化器将不使⽤索引⽽使⽤全表扫描.举例:代码如下:低效:SELECT … FROM DEPT WHERE SAL * 12 > 25000;⾼效:SELECT … FROM DEPT WHERE SAL > 25000/12;3、避免在索引列上使⽤IS NULL和IS NOT NULL避免在索引中使⽤任何可以为空的列,ORACLE性能上将⽆法使⽤该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果⾄少有⼀个列不为空,则记录存在于索引中.举例: 如果唯⼀性索引建⽴在表的A列和B列上, 并且表中存在⼀条记录的A,B值为(123,null) , ORACLE将不接受下⼀条具有相同A,B值(123,null)的记录(插⼊). 然⽽如果所有的索引列都为空,ORACLE将认为整个键值为空⽽空不等于空. 因此你可以插⼊1000 条具有相同键值的记录,当然它们都是空! 因为空值不存在于索引列中,所以WHERE⼦句中对索引列进⾏空值⽐较将使ORACLE停⽤该索引.代码如下:低效:(索引失效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;⾼效:(索引有效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;4、注意通配符%的影响使⽤通配符的情况下Oracle可能会停⽤该索引。

Oracle数据库参数优化

Oracle数据库参数优化

Oracle数据库参数优化
参数优化对于Oracle数据库来说非常重要,因为它可以有效提高数据库的性能,并提供良好的可用性。

参数优化可令数据库更加稳定和高效地运行。

但是,在参数优化方面,很多初学者犯了不少错误,有些甚至会影响数据库的性能,甚至可能导致数据库出现问题。

因此,在优化参数方面,必须慎重、细心、谨慎。

首先,在参数优化之前,必须对当前参数进行全面的测试,找出需要优化的参数。

一般来说,优化可以采用两种方法,一种是优化全局参数,另一种是优化实例参数。

如果参数设置过高或者过低,可能会影响数据库的性能,因此,在参数优化时,必须按照Oracle数据库提供的最佳实践去设置参数。

最后,应该强调的是,在参数优化时,不要增加参数或者设置参数太高,并且要确保参数优化后,数据库在重要的方面有所改善,比如。

oracle优化方法总结

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数据库内存优化操作说明

Oracle数据库内存优化操作说明Oracle数据库内存优化是提高数据库性能的重要手段之一。

通过设置合理的内存参数,可以有效地削减IO操作,提高数据访问速度。

本文将介绍一些常见的Oracle数据库内存优化操作。

一、调整PGA参数PGA(Program Global Area)是每个数据库会话独有的内存区域,用于存储排序、哈希操作等临时数据。

调整PGA参数可以提高排序和连接操作的性能。

1. 设置PGA_AGGREGATE_TARGET参数该参数把握PGA内存的总量,一般建议设置为SGA的1/3到1/2。

可以通过以下命令设置:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM;2. 调整SORT_AREA_SIZE参数该参数把握每个排序操作使用的PGA内存大小,一般建议设置为100MB到200MB。

可以通过以下命令设置:ALTER SESSION SET SORT_AREA_SIZE = XXXM;3. 调整HASH_AREA_SIZE参数第1页/共4页该参数把握每个哈希操作使用的PGA内存大小,一般建议设置为SORT_AREA_SIZE的1/2到1倍。

可以通过以下命令设置:ALTER SESSION SET HASH_AREA_SIZE = XXXM;二、调整SGA参数SGA(System Global Area)是Oracle数据库的全局共享内存区域,用于存储缓存数据、SQL执行方案等。

调整SGA参数可以提高数据访问的速度。

1. 调整SHARED_POOL_SIZE参数该参数把握缓存SQL语句的内存大小,一般建议设置为SGA的1/4到1/3。

可以通过以下命令设置:ALTER SYSTEM SET SHARED_POOL_SIZE=XXXM;2. 调整DB_CACHE_SIZE参数该参数把握数据库缓冲区的内存大小,一般建议设置为SGA的1/2到2/3。

可以通过以下命令设置:ALTER SYSTEM SET DB_CACHE_SIZE=XXXM;3. 调整LOG_BUFFER参数该参数把握数据库日志缓冲区的内存大小,一般建议设置为10MB到100MB。

ORACLE数据库性能的调整

ORACLE数据库性能的调整

ORACLE数据库性能的调整摘要由于oracle具备功能和灵活性突出的优越性,因此它是一个功能极其强大和灵活关系型的数据系统。

在数据库的应用类型上是较为复杂的,不同类型的应用对其系统的要求也是不同的,所以为了能够满足不同类型的应用系统,就必须对系统性能进行定期的诊断和调整,以此来提高系统的运行效率。

关键词 oracle;数据库;优化和调整中图分类号tp311 文献标识码a 文章编号1674-6708(2010)22-0187-02随着数据库在信息领域的不断推广,数据库产品也逐渐增多,其中oracle数据库产品在整个数据库产品的应用中占有较为主要的部分,接近1/2,而且还有不断上升的趋势。

因此,对于oracle数据库性能的调整和优化问题也是人们所关注的问题,本文就oracle数据库性能的调整进行了相应的探讨。

1 性能调整与优化概述目前,性能调整作为一项活动在进行,活动可以通过优化应用程序、修改系统参数和改变系统配置来有效的改变系统的性能。

其中性能的调整主要包括了对硬件配置、操作系统和数据库管理系统的配置的调整,并且对所访问的组件的应用进行详细的分析和优化。

性能优化主要是指具备目的性的对所需调整的组件进行有效的改善,使数据库的吞吐量逐渐变大,所对应的响应时间逐渐达到最小化。

对于数据库性能的调整和优化来说,要尽可能的减少磁盘访问,从中获取所需的数据,数据库性能的调整和优化在一定程度上说是相互循环的,想要性能达到相应的优化目的,就必须进行适当的性能调整,最后再查看优化的结果,通过这种反复的检查,最终达到较为满意的结果。

2 数据库系统性能评价指标2.1 系统吞吐量系统的吞吐量是指在单位时间内数据库所完成的sql语句的数目,这主要是以每秒钟的事务量来进行表示。

想要有效的提高系统的吞吐量,就必须通过减少服务时间,并在相同的资源环境内做更加多的工作,或者减少总的响应时间,从而使工作能够做的更加快。

2.2 用户响应时间用户的响应时间主要是指用户在提交sql语句以后来获取相应的结果集的第一行所需要的时间,并且根据应用做出相应的反应时间,这个时间一般都是使用毫秒和秒来进行表示。

oracle性能调优汇总

oracle性能调优汇总

性能调优---------------------方法:一、检查日志是否有错误二、检查参数是否设置正确三、检查系统IO、CPU、内存等利用率,查看哪些占用较高四、检查哪些SQL语句大量占用IO或CPU权衡性能与安全的方面:一、多个控制文件二、一个日志文件组中有多个日志文件三、频繁的执行检查点四、备份数据文件五、频繁的归档六、块检查七、同时执行操作与统计性能调优工具:查看ALTER.LOG中的信息:1、用/ORA- 能查找文件中的错误信息2、要想让ALTER.LOG文件中产生检查点开始与结束信息,得修改参数LOG_CHECKPOINTS_TO_ALERT,将之修改为TRUE。

默认为FALSE。

SQL>ALTER SYSTEM SET LOG_CHECKPOINTS_TO_ALERT = TRUE SCOPE=BOTH;在用户UDUMP目录下的文件中产生监控用户执行信息:方法1、监控自己的操作。

在自己的session中设置参数,这样就能在用户udump目录下生成执行的SQL语句信息SQL>ALTER SESSION SET SQL_TRACE=TRUE;在pl/sql或者sqlplus中,打开一个sql_window。

(1)先运行:alter session set sql_trace=true;(2)再运行你那个返回结果不正确的SQL(3)再运行:alter session set sql_trace=false;(4)马上登陆到机器上,到$ORACLE_BASE/admin/sid/udump目录下。

(5)找到刚生成的.trc文件(假设文件名是 xxx.trc),执行命令转储跟踪文件:tkprof xxx.trc aa.txt。

查看aa.txt文件。

这个文件里面有执行计划。

看看执行计划每一步返回的结果集记录数是不是正确。

方法2、SYS用户监控别的用户执行情况方法3、对所有SESSION进行监控SQL>ALTER SESSION SET SQL_TRACE=TURE;安装STATSPACK一、创建表空间,最少100M二、安装在安装时默认创建了一个用户PERFSTAT,所以密码也可以输入这个选择要将快照存放于哪个表空间使用STATSPACK手动执行生成一次快照,间隔一般为10几分钟为益,中间不要有停机。

Oracle 索引的使用规则与性能调优

Oracle 索引的使用规则与性能调优

Oracle 索引的使用规则与性能调优索引分类逻辑上:Unique 唯一索引物理上:B-tree:Normal 正常型B树Bitmap 位图索引索引结构:B-tree:适合与大量的增、删、改(OLTP);不能用包含OR操作符的查询;适合高基数的列(唯一值多)典型的树状结构;每个结点都是数据块;大多都是物理上一层、两层或三层不定,逻辑上三层;叶子块数据是排序的,从左向右递增;在分支块和根块中放的是索引的范围;Bitmap:适合与决策支持系统;做UPDATE代价非常高;非常适合OR操作符的查询;基数比较少的时候才能建位图索引;树型结构:索引头开始ROWID,结束ROWID(先列出索引的最大范围)BITMAP每一个BIT对应着一个ROWID,它的值是1还是0,如果是1,表示着BIT对应的ROWID 有值;B*tree索引的话通常在访问小数据量的情况下比较适用,比如你访问不超过表中数据的5%,当然这只是个相对的比率,适用于一般的情况。

bitmap的话在数据仓库中使用较多,用于低基数列,比如性别之类重复值很多的字段,基数越小越好。

索引就好象一本字典的目录。

凭借字典的目录,我们可以非常迅速的找到我们所需要的条目。

数据库也是如此。

凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表。

虽然说,在表中是否创建索引,不会影响到Oracle数据库的使用,也不会影响数据库语句的使用。

这就好像即使字典没有目录的话,用户仍然可以使用它一样。

可是,若字典没有目录,那么可想而知,用户要查某个条目的话,其不得不翻遍整本字典。

数据库也是如此。

若没有建立相关索引的话,则数据库在查询记录的时候,不得不去查询整个表。

当表中的记录比较多的时候,其查询效率就会很低。

所以,合适的索引,是提高数据库运行效率的一个很好的工具。

不过,并不是说表上的索引越多越好。

过之而不及。

故在数据库设计过程中,还是需要为表选择一些合适的索引。

Oracle数据库参数优化

Oracle数据库参数优化

千里之行,始于足下。

Oracle数据库参数优化Oracle数据库参数优化是指通过调整数据库的配置参数,提高数据库的性能和稳定性。

下面是一些常见的Oracle数据库参数优化技巧:1. SGA参数优化:- 调整sga_target参数以控制SGA的大小。

SGA包括数据库缓冲区、共享池、重做日志缓冲区等,适当调整SGA的大小可以减少IO操作,提高数据库性能。

- 调整db_cache_size参数以增大数据库缓冲区的大小,提高数据块的访问速度。

- 调整shared_pool_size参数以增大共享池的大小,提高SQL语句的解析和执行效率。

2. PGA参数优化:- 调整pga_aggregate_target参数以控制PGA的大小。

PGA是用于处理SQL查询和排序的内存区域,适当调整PGA的大小可以减少磁盘IO操作,提高查询和排序的性能。

3. Redo日志参数优化:- 调整log_buffer参数以增大重做日志缓冲区的大小,减少频繁的重做日志刷新操作,提高数据库的写入性能。

- 调整log_checkpoint_timeout参数以控制重做日志刷新的频率,避免过于频繁的刷新。

4. 并行处理参数优化:- 调整parallel_max_servers参数以增大并行处理的资源限制,提高并行查询和并行DML操作的性能。

第1页/共2页锲而不舍,金石可镂。

- 调整parallel_min_servers参数以设置最小的并行处理资源数,避免并行操作的启动延迟。

5. SQL优化:- 使用合适的索引和优化的SQL语句,优化查询的执行计划。

- 使用绑定变量而不是直接将参数传递到SQL语句中,避免SQL重解析,提高性能。

6. 服务器参数优化:- 调整processes参数以增加数据库的并发连接数。

- 调整sessions参数以控制数据库的最大会话数。

- 调整open_cursors参数以增大打开游标的数量,避免游标溢出。

以上是一些常见的Oracle数据库参数优化技巧,但具体的优化策略需要根据实际情况进行调整,可以参考Oracle官方文档和专业的DBA建议。

Oracle-BCT(Block Change Tracking)参数优化配置

Oracle-BCT(Block Change Tracking)参数优化配置

Oracle-BCT(Block Change Tracking)参数优化配置Oracle BCT(Block Change Tracking)是一个有用的功能,可以用来优化备份和恢复的时间。

使用BCT会减少备份和恢复所需的I/O操作和时间。

正确配置参数是确保BCT有效运行的关键。

以下是一些优化 Oracle BCT参数配置的建议。

1.开启BCT要启用BCT,必须运行以下命令:ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; 如果BCT已经启用,该命令不会做任何事情。

2.配置BCT文件的位置BCT文件位于数据库的主目录中。

如果要改变BCT文件的位置,可以使用以下命令:ALTER DATABASE BACKUP CONTROLFILE TO'/new/path/to/bct_file';运行此命令将在新的目录结构中创建新的BCT文件。

3.监控BCT的大小默认情况下,BCT文件大小为10MB。

如果备份通常大于10MB,则应增加BCT文件的大小。

可以通过以下命令更改BCT文件的大小:ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/path/to/new/bct/file' SIZE 50M;在此示例中,BCT文件的大小将增加到50MB。

4.启用增量备份启用增量备份可以利用BCT功能。

增量备份仅备份已更改的数据块,因此它比完全备份要快。

要启用增量备份,请运行以下命令:CONFIGURE BACKUP OPTIMIZATION ON;如果您想从增量备份中排除某些表,则可以使用以下命令:CONFIGURE BACKUP OPTIMIZATION OFF FOR TABLE schema.table1, schema.table2;5.启用快速恢复区快速恢复区是一个文件系统,可以用来存储备份。

34种Oracle性能优化的方法

34种Oracle性能优化的方法

34种Oracle性能优化的方法1、选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。

如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.2、WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.3、SELECT子句中避免使用‘ * ‘:ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间4、减少访问数据库的次数:ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等;5、在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE 参数, 可以增加每次数据库访问的检索数据量 ,建议值为2006、使用DECODE函数来减少处理时间:使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.7、整合简单,无关联的数据库访问:如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)8、删除重复记录:最高效的删除重复记录方法 ( 因为使用了ROWID)例子:DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID)FROM EMP X WHERE X.EMP_NO = E.EMP_NO);9、用TRUNCATE替代DELETE:当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况) 而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短. (译者按: TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)10、尽量多使用COMMIT:只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:COMMIT所释放的资源:a. 回滚段上用于恢复数据的信息.b. 被程序语句获得的锁c. redo log buffer 中的空间d. ORACLE为管理上述3种资源中的内部花费11、用Where子句替换HAVING子句:避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销. (非oracle中)on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后,因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的,where也应该比having快点的,因为它过滤数据后才进行sum,在两个表联接时才用on的,所以在一个表的时候,就剩下where跟having比较了。

常见Oracle数据库优化策略与方法

常见Oracle数据库优化策略与方法

常见Oracle数据库优化策略与方法
Oracle数据库优化是提高数据库性能的关键步骤,可以采取多种策略。

以下是一些常见的Oracle数据库优化策略:
1.硬件优化:这是最基本的优化方式。

通过升级硬件,比如增加RAM、使用
更快的磁盘、使用更强大的CPU等,可以极大地提升Oracle数据库的性能。

2.网络优化:通过优化网络连接,减少网络延迟,可以提高远程查询的效率。

3.查询优化:对SQL查询进行优化,使其更快地执行。

这包括使用更有效的
查询计划,减少全表扫描,以及使用索引等。

4.表分区:对大表进行分区可以提高查询效率。

分区可以将一个大表分成多
个小表,每个小表可以单独存储和查询。

5.数据库参数优化:调整Oracle数据库的参数设置,使其适应工作负载,可
以提高性能。

例如,调整内存分配,可以提升缓存性能。

6.数据库设计优化:例如,规范化可以减少数据冗余,而反规范化则可以提
升查询性能。

7.索引优化:创建和维护索引是提高查询性能的重要手段。

但过多的索引可
能会降低写操作的性能,因此需要权衡。

8.并行处理:对于大型查询和批量操作,可以使用并行处理来提高性能。

9.日志文件优化:适当调整日志文件的配置,可以提高恢复速度和性能。

10.监控和调优:使用Oracle提供的工具和技术监控数据库性能,定期进行性
能检查和调优。

请注意,这些策略并非一成不变,需要根据实际情况进行调整。

在进行优化时,务必先备份数据和配置,以防万一。

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数据库是一款流行的企业级数据库软件,但其性能优化问题也是不可避免的。

在实际应用中,如果Oracle数据库出现性能问题,将有严重的影响和损失。

因此,本文将讨论如何优化Oracle数据库的性能问题。

首先,针对Oracle数据库的性能瓶颈,可以通过调整数据库参数来提高性能。

Oracle数据库有很多参数可以配置,例如,缓存区大小、连接数、内存分配等。

通过针对不同的应用场景调整不同的参数配置,可以最大化地利用数据库的性能。

其次,针对SQL的性能问题,可以通过改进SQL语句来提高性能。

SQL优化是一项复杂的工作,但可以通过分析SQL执行计划来发现性能瓶颈,例如,缺乏索引、大表连接、高开销的子查询等。

并可以通过添加索引、优化查询语句等方式来提高数据库的性能。

除此之外,还可以通过加强硬件设备等方面来提升数据库性能。

例如,扩展数据库服务器的内存和硬盘容量,可以提高数据库的读写速度。

而使用高速网络设备如IB网络和10/100G以太网设备等,也可提高数据库的数据传输速度。

此外,Oracle数据库的性能优化也需要管理进程的支持与配合。

例如,数据库管理员需要监控数据库服务器硬件和软件性能,例如Oracle数据库的内部锁、等待事件、I/O活动等等。

在监控到性能问题后,需要在业务空档期进行优化,如调整SQL语句、更改数据库参数等。

总之,提高Oracle数据库的性能需要全面考虑软硬件配置、SQL语句等多个方面的因素。

通过合理的参数配置、SQL优化和硬件支持等方式,可以优化数据库的性能,提高应用的稳定性和响应速度。

浅谈Oracle数据库性能调优

浅谈Oracle数据库性能调优

( 江西赣江职业技术学院信息学院 ,江西 南昌 3 0 0 ) 3 ] 8
( c o l o n o m t o ,G n i n o l g f J a g i i n x a c a g 3 0 0 ) S h o f If r a J n a j a g C l e e o i n x ,J a g i N n h n 3 18
的扩人,数据库系统 的性能问题就越来越突出。一个平时正
常运行的 D I M 语句半天运行没结果,系统可用 问内存极少 等等。因此,如何对数据库进行优化,减少数据库的存储空
间,提高检索效率等待,不仅是 目前每个 D A B 人员数据库优 化的事情,同时也是应用设计人员、应用开发人员必须重点 掌握的技术 。 数据库服务器的性能直接影响数据库应用系统的正常运 行和工作效率,本文针对数据库系统 的性能调优问题,通过
不同的用户所提交的SL Q 语句, 获取数据并返回数据给用户。 众所周知, 解析 SI Q 语句的工作是在O a l 实例巾的s a e rce h rd po 所完成的。那么对于每个 ss in 关的一些 内存 的分 o] eso相 配问题都与 PA( G 程序全局区 ) 息息相关。然而,如果 PA G 的
些相关方法进行了阐述 。 初始化参数是存储O a l例程和数据库的特征, rc e rce O a ]
1 0rce初 始 化参 数 调 整 al

提供 了数百个初始化参数。定义 SA( G 系统全局区) ,设置用
户和进程的限制,定义数据库 的物列属性,定义控 制文件 、
内存分配不 当将会导致系统 内存 不足 ,操作系统将 会频 繁
区域。它是在一个 服务进程启动时创 建的,是非共享 日为特 .

Oracle数据库性能调优的研究

Oracle数据库性能调优的研究
1 生 产 过 程 中 的 优 化 步 骤 生产 系统 的优化方 法是 在用 户遇 到问题 之前解决 问题 ,优化步骤 如下 :
告 警 日志 中包 括 各 种 提示 性 日志 信息 和各 种 警 告 、错误信 息 。它 的名字 是 aet 数 据库 S D. g, lr~ I 1 它 o 的位 置 用 初 始 化 参 数 b c go n — u — et 置 , a k ru d d mp d s 设
( )坏 块 错 误 OR 2 A一 1 7 5 8或 ORA~ 1 9 ,也 就 48 是数 据文 件产 生 了坏 块 。 ( ) 影 响 数 据 库 结 构 的 操 作 或 参 数 , 如 3 C e td tb s rae aa a e创建数 据库 、Sa tp或 S ud wn开 tru h to
始或关 闭数 据库 、归档 操作 或恢 复操作 等 。 ( )在 实例启 动 时的非缺 省参 数 。 4 () 5 其他 Orc a l 为需要 让 D A( e认 B 系统管理 员 ) 知 道 的警 告和 错误 信息 。 ( )检查 点信 息 。当 lg c ek ons t— lr 参 6 o ~ h c p it—o aet 数 设为真 时 ,检查 点信 息会被 记入告 警 E志 。如果想 l 详 细观察 检查 点 的行 为 ,将此 参数设 为真是 很有 帮助
( )使用 Sasa k 1 ttp c 、OrceE trr eMa a e al nep i n g r s 等 工具来定 位瓶颈 或潜在 的瓶 颈 。
( )瓶 颈通常 以等待 事件 的形 式 出现 ,请确 定等 2 待 事件的原 因 。 ()解 决等待 事件 的起 因 ,这 可能需要 更 改系统 3 全局 区的成员 大小 。

Oracle的性能优化

Oracle的性能优化

千里之行,始于足下。

Oracle的性能优化
Oracle的性能优化是提高数据库系统性能和响应速度的关键步骤,可以通
过如下几个方面进行优化:
1. 数据库设计和规范化:合理的数据库设计和良好的规范化可以减少数据冗余,提高查询效率,避免数据冲突和不一致。

2. 索引优化:在频繁查询的字段上创建适当的索引,可以加快查询速度。

但是,索引不宜过多,因为它们会增加数据修改和插入的时间。

3. 查询优化:优化查询语句的执行计划,使用正确的连接方法(如内连接、外连接),避免全表扫描。

4. 硬件升级:增加内存、硬盘和处理器等硬件资源,可以显著提高
Oracle数据库的性能。

5. 优化配置参数:根据数据库的特点和应用的需求,调整数据库的配置参数,例如SGA大小、PGA大小、日志文件大小等,以提高性能。

6. 数据库优化:使用合适的数据库特性,如分区表、分区索引、物化视图等,优化数据库的存储和查询效率。

7. 监控和调优:持续监控数据库的性能指标,如CPU利用率、内存使用率、磁盘IO等,并及时进行适当的调优操作。

第1页/共2页
锲而不舍,金石可镂。

总体来说,Oracle的性能优化需要综合考虑数据库设计、硬件配置、查询优化和系统监控等多个方面,通过不断的调整和优化,提高数据库的性能和响应速度。

Oracle性能调整与优化71页PPT

Oracle性能调整与优化71页PPT
Oracle数据库性能 调整和优化
Oracle技术专题讲座
SUPPORT SERVICES
内容提要
1.oracle 性能调整概述 2.磁盘I/O的调整 3.oracle 内存分配与调整 4.SQL优化概述 5.Statspack概述
SUPPORT SERVICES
1.oracle 性能调整概述
SUPPORT SERVICES
2.5 管理回滚段
回滚段:用来保存数据变化前映像而提供一致读和保障 事务完整性的一段磁盘存储区域. 旧数据
回滚段
新数


UPDATE
SUPPORT SERVICES
2.5 管理回滚段
回滚段作用
回退事务
事务恢复
回滚段
读一致性
控制文件
数据文件
重做日志
SUPPORT SERVICES
SUPPORT SERVICES
2.4 使用本地管理表空间(LMT)自动段空间管理 (ASSM)
create tablespace demo datafile '/ora01/oem/demo01.dbf ' size 5m EXTENT MANAGEMENT LOCAL -- Turn on LMT SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;
OWNER ALEX
TABLE_NAME DEPT
PARTITION_COUNT 3
SUPPORT SERVICES
2.4 使用分区表避免磁盘争用
Select segment_name, partition_name, segment_type, tablespace_name

Oracle配置优化

Oracle配置优化

Oracle 学习笔记数据库命令 (2)Oracle的分区 (3)Oracle性能调优 (6)数据库命令查看用户表大小Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name查看表空间大小Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name创建表空间create tablespace tablespacename datafile ‘full path’ size numM online删除默认表空间USERS,由于USERS表空间在安装的时候默认为文件系统,有些时候处于数据库设备建立的需要,比如说建立成裸设备,我们需要将USERS表空间改成我们自己建立的裸设备,而USERS为数据库的默认表空间,直接删除是不可以的,那么就要使用命令将数据库默认表空间改成我们新建立的表空间,例如,新的表空间为USERS01,则使用alter database default tablespace USERS01然后drop tablespace USERS including contents查看表空间的物理路径以及大小select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name查看表空间Select Tablespace_Name,Sum(bytes)/1024/1024From Dba_SegmentsGroup By Tablespace_Name关于WEB控制台创建一个EM资料库emca -repos create重建一个EM资料库emca -repos recreate删除一个EM资料库emca -repos drop配置数据库的 Database Controlemca -config dbcontrol db删除数据库的 Database Control配置emca -deconfig dbcontrol db重新配置db control的端口,默认端口在1158emca -reconfig portsemca -reconfig ports -dbcontrol_http_port 1160emca -reconfig ports -agent_port 3940先设置ORACLE_SID环境变量后,启动EM console服务emctl start dbconsole先设置ORACLE_SID环境变量后,停止EM console服务emctl stop dbconsole先设置ORACLE_SID环境变量后,查看EM console服务的状态emctl status dbconsole配置dbconsole的步骤emca -repos createemca -config dbcontrol dbemctl start dbconsole重新配置dbconsole的步骤emca -repos dropemca -repos createemca -config dbcontrol dbemctl start dbconsole查看目前数据库字符集select * from v$nls_parameters查看表大小select segment_name,(bytes/1024)/1024||'M',((BLOCKS*8196)/1024)/1024||'M'from USER_segments where segment_name='tablename'Oracle的分区全局索引适用于在全部记录中查询,比如要查询一个手机号之类的global index就是为整个分区表建立了一个大的索引。

Oracle优化器二十六个参数

Oracle优化器二十六个参数

Oracle优化器二十六个参数Oracle还是比较常用的,于是我研究了一下Oracle优化器,在这里拿出来和大家分享一下,希望对大家有用。

影响系统性能类可变参数(1)CHECKPOINT_PROCESS该参数根据是否要求检查点而设置成TRUE或者FALSE。

当所有缓冲区的信息写到磁盘时,检查点进程(CHPT)建立一个静态的点。

在归档日志文件中做一个记号表示有一个检查点发生。

检查点发生在归档日志转换的时候或当达到log_checkpoint_interval定义的块数的时候。

当设置此参数为TRUE时,后台进程CHPT便可工作。

在检查点期间内,若日志写进程(LGWR)的性能减低,则可用CHPT进程加以改善。

(2)DB_BLOCK_CHECKPOINT_BATCH该参数的值设置得较大时,可加速检查点的完成。

当指定的值比参数DB_BLOCK_CHECKPOINT_BATCH大时,其效果和指定最大值相同。

(3)DB_BLOCK_BUFFERS该参数是在SGA中可作缓冲用的数据库块数。

该参数决定SGA的大小,对数据库性能具有决定性因素。

若取较大的值,则可减少I/O次数,但要求内存空间较大。

每个缓冲区的大小由参数DB_BLOCK_SIZE决定。

(4)DB_BLOCK_SIZE该参数表示Oracle数据库块的大小,以字节为单位,典型值为2048或4096。

该值一旦设定则不能改变。

它影响表及索引的FREELISTS参数的最大值。

(5)DB_FILES该参数为数据库运行时可打开的数据文件最大数目。

(6)DB_FILE_MULTIBLOCK_READ_COUNT该参数表示在顺序扫描时一次I/O操作可读的最大块数,该最大块数取决于操作系统,其值在4至16或者32是比较好。

(7)D1SCRETE_TRANSACTION_ENABLED该参数实现一个更简单、更快的回滚机制,以改进某些事务类型的性能。

当设置为TRUE时,可改善某些类型的事务性能。

Oracle数据库性能优化指南说明书

Oracle数据库性能优化指南说明书

Real-World Performance Training Parallel ExecutionReal-World Performance TeamParallel ExecutionSerial and Parallel Execution•Serial Execution–SQL is executed by one process–The correct solution when:•the query references a small data set•high concurrency•efficiency is important•Parallel Execution–SQL is executed by many processes working together–The correct solution when:•the query references a large data set•low concurrency•elapsed time is important•Used to reduce the execution time of queries–Multiple processes work together to use more resources on the system, such as CPU and IOParallel ExecutionBasicsQuery Coordinator (QC)The “top level” process for the parallel queryParallel Execution Server (PX)An (OS) process that operates on part of a parallel query Parallel server group The group of parallel server processes that operate on arow sourceDegree of Parallelism (DoP)The number of parallel execution servers used in eachparallel server group during parallel executionParallel ExecutionWays to set the DoP•Table Setting–Can specify a value or set to parallel default•Hint–Useful for testing but usually not appropriate for production •Alter session–Useful for testing but usually not appropriate for production •Auto DoP–The optimizer determines the DoPParallel ExecutionConfiguration Parameters•parallel_min_servers–Specifies the minimum number of px processes started for the instance•parallel_max_servers–Specifies the maximum number of px processes started for the instance •parallel_threads_per_cpu–Specifies the number of px processes per CPU—OS threads are already accounted for in CPU_COUNT, so set to 1•Parallel_degree_policy–Determines how the DoP is calculatedParallel ExecutionPARALLEL_DEGREE_POLICY Parameter•The PARALLEL_DEGREE_POLICY parameter controls how the DoP is chosen –MANUAL•The default•Uses manual DoP rules–AUTO, which enables•Auto DoP•In Memory Parallel Execution•Parallel Statement Queuing–ADAPTIVE•The same as AUTO but also enables performance feedback to determine the DoP•New in 12c–LIMITED•Just enables Auto DoP–Only used when the table parallel decoration is set to DEFAULTParallel ExecutionManual DoP•The DoP is calculated based on table or system settings–Uses the parallel decoration on the table–If the table parallel decoration is set to “default” it uses the formulaCPU_COUNT * PARALLEL_THREADS_PER_CPU * # of instances •Manual DoP–Facilitates using a consistent DoP across users, schemas, queries and tables if tables have the same settings–Also allows for inconsistent DoPs if tables and/or instances have different settingsParallel ExecutionAuto DoP•First determines if the SQL statement will run serial or parallel–Uses the PARALLEL_MIN_TIME_THRESHOLD parameter–Defaults to 10 seconds–Defaults to 1 second for DBIM–Needed for DBIM on RAC•Automatically calculates the most “efficient” DoP for a SQL statement –Does not take system workload into account–The DoP calculation is based primarily on expected IO prior to 12c •Ignores the table parallel decorationResource Management with Parallel ExecutionParallel ExecutionWays to limit the DoP•Resource Manager–The Max DoP setting limits the DoP for a consumer group •PARALLEL_DEGREE_LIMIT–This parameter limits the DoP when using Auto DoPParallel ExecutionWays to control system resources with parallel execution•parallel_adaptive_multi_user–Reduces DoP based on system load–Usually reduces DoP too much—recommend setting to FALSE•Parallel statement queuing–Creates a FIFO queue for parallel statements–Make SQL statements wait for px resources to become available before execution starts instead of allowing SQL statements to run with insufficient px resources–When all of the parallel server processes in the pool are in use, statements queueParallel ExecutionThe Basics•Parallel execution is used to reduce the execution time of queries–Multiple processes work together to use more resources on the system, such as CPU and IO•A simple configuration should be used to determine the DoP–Coordinate parallel parameters–Avoid using hints and alter session•A resource management policy is needed when using parallel execution–To keep the system under control–To ensure SQL statements are able to execute in parallelPX Workload with No Resource Management•Available PX processes defined bythe following parameters which aredefined per instance–parallel_min_servers=32–parallel_max_servers=64•By default, PX servers will beallocated for parallel SQL and if allPX servers are busy subsequent SQLexecutions will be downgradedPX Workload with No Resource ManagementQuery Status RequestedDoPPXAllocatedExecutionDoPPX Workload with No Resource ManagementQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168PX Workload with No Resource ManagementQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412PX Workload with No Resource ManagementQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412C Running8168PX Workload with No Resource ManagementQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412C Running8168D Running1284PX Workload with No Resource ManagementQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412C Running8168D Running1284E Running3201PX Workload with Resource Management•parallel_min_servers andparallel_max_servers stilldefine the number of px serversavailable for execution•parallel_servers_targetdefines the pool of px serversavailable for SQL statements in thequeuePX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA8PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412C Running8168PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Running8168B Running122412C Running8168D Queued12PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Finished8168B Running122412C Running8168D Queued12PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Finished8168B Running122412C Running8168D Running122412PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Finished8168B Running122412C Running8168D Running122412E Queued32PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Finished8168B Finished122412C Finished8168D Finished122412E Queued32PX Workload with Parallel Statement QueuingQuery Status RequestedDoPPXAllocatedExecutionDoPA Finished8168B Finished122412C Finished8168D Finished122412E Running326432Parallel ExecutionParallel Statement Queuing•Parallel Statement Queuing–Can be enabled separately by setting _parallel_statement_queuing=true –Can be used with Resource Manager to create multiple queues for different consumer groups–Set PARALLEL_SERVERS_TARGET based on CPU resources on the systemParallel ExecutionRecommendations•Implement a simple setup to understand what is happening in the system •Base your plan/strategy on the amount of system resources you want to make available for parallel execution•Use resource manager to specify the max DoP for consumer groups •Set tables to the highest DoP that can be used in the resource manager plan。

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

Oracle性能调整(一)——基本参数调整一、操作系统参数交换区是Oracle的一项基本的要求。

可以根据Oracle的发行要求来确定。

一般交换区大小的要求是该服务器内存的2倍至4倍之间,建议是内存的4倍Note2:oracle 文件设置当服务器平台已完成操作系统的安装后,就应该开始认真的考虑下面的问题:A、是否采用裸设备实际应用的生产系统基本都是采用裸设备,使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。

B、安装点的考虑Oracle的安装点就是指数据文件、日志文件和控制文件的安置路径,为了使系统在以后运行性能达到优化,建议将数据文件、日志文件和控制文件的安置路径与数据库系统存放在不同的路径上。

最好将数据文件、日志文件和控制文件分别存放在不同的路径。

C、SYSTEM表空间对应数据文件在自定义安装会话中,建议你根据需要设置system表空间所对应的数据文件的大小。

一般要设置比默认值的2倍。

该数据文件的大小最好是在300MB至500MB间。

因为数据文件太小不利于系统的运行。

D、临时表空间对应的数据文件临时表空间对应的数据文件可以根据将来系统存放的应用的处理情况来定。

比如系统将来可能要经常进程排序处理,则需要设置较大的临时表空间,也可能需要再建立新的临时表空间。

这里建议临时表空间的数据文件在100MB至300MB左右。

E、回滚段表空间对应的数据文件回滚表空间都是系统管理,初始值也是根据系统事务量预估计的值,实际到运行阶段如果系统常出现ORA-01555错误的时候,可能就需要增加回滚表空间的大小。

F、日志文件的大小日志文件的大小对于Oracle系统的运行也是相当重要。

默认值是太小。

实际根据事务繁忙预估计日志大小,没有固定的具体值范围,建议重做日志切换时间不能过短也不能过长,一般在20-40分钟左右。

该参数可以在系统运行期间根据数据库系统日志切换时间重新调整,控制文件的大小。

G、数据库块的大小如果你的应用系统是OLTP的话,可以采用较小的数据库块。

如果是DSS类型的应用系统,则可以设置较大的数据库块,目前Oracle产品所允许的数据库块可以是2KB至64KB之间。

无论你选择较大的块或较小的块,它的值都必须是2的整数倍,比如2048,4096,8192等。

但需要注意的是,如果操作系统为64位,则可选择较大的块。

H、字符集的选择字符集是Oracle系统专门支持的一项技术。

详细请参考另外的章节。

一般不要与另外的已经存放的Oracle系统的字符集产生冲突即可。

但如果你的环境是一个新的平台,不需要与其它平台进行数据交换的话,建议选择默认的字符集。

这样可以利于将来的修改。

二、数据库启动参数(SGA)Note1:默认的SGA是PGA的3倍SGA+PGA=PHY_MEM×60%得到最好的性能查看:sql> show parameters sga_max_size修改:sql>alter system set sga_max_size = 30000000;重启数据库生效Note2:select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache;假如共享池的命中率低于95%,就要考虑调整应用(通常是没使用bind var )或者增加内存Note3:sql> select value from v$sysstat where name ='physical reads';sql> select value from v$sysstat where name ='physical reads direct';sql> select value from v$sysstat where name ='physical reads direct (lob)';sql> select value from v$sysstat where name ='consistent gets';sql> select value from v$sysstat where name = 'db block gets';令x = physical reads direct + physical reads direct (lob)命中率=100 - ( physical reads - x) / (consistent gets + db block gets - x)*100通常如果发现命中率低于90%,则应该调整应用可可以考虑是否增大数据缓冲区Note4:对应的参数是log_buffer,缺省值与OS相关,一般是500K。

检查v$session_wait中是否存在log buffer wait,v$sysstat中是否存在redo buffer allocation retriesselect name,value from v$sysstat where name in('redo entries','redo buffer allocation retries');假如redo buffer allocation retries/ redo entries 的比例超过1%我们就可以考虑增大log_buffer。

A、检查是否存在log buffer wait:Select * from v$session_wait where event='log buffer wait';如果出现等待,一可以增加log_buffer的大小,也可以通过将log 文件移到访问速度更快的磁盘来解决。

B、Select name,value from v$sysstat where name in ('redo buffer allocation retries','redo entries')Redo buffer allocation retries接近0,小于redo entries 的1%,如果一直在增长,表明进程已经不得不等待redo buffer的空间。

如果Redo buffer allocation retries过大,增加log_buffer的值。

C、检查日志文件上是否存在磁盘IO竞争现象Select event,total_waits,time_waited,average_wait from v$system_event where event like 'log file switch completion%';如果存在竞争,可以考虑将log文件转移到独立的、更快的存储设备上或增大log文件。

D、检查点的设置是否合理检查alert.log文件中,是否存在‘checkpoint not complete’;Select event,total_waits,time_waited,average_wait from v$system_event where event like ‘log file switch (check%’;如果存在等待,调整log_checkpoint_interval、log_checkpoint_timeout的设置。

E、检查log archiver的工作Select event,total_waits,time_waited,average_wait from v$system_event where event like ‘log file switch (arch%’;如果存在等待,检查保存归档日志的存储设备是否已满,增加日志文件组,调整log_archiver_max_processes。

F、DB_block_checksum=trueDB_block_checksum=true,因此增加了性能负担。

(为了保证数据的一致性,oracle的写数据的时候加一个checksum在block上,在读数据的时候对checksum进行验证)Note5:通过如下语句查看数据库并发量:select count(*) from v$session where status='ACTIVE';SQL> show parameter processesSQL> show parameter sessions如果上面语句的值和processes,sessions参数的值非常接近了,说明需要扩大processes,sessions数量。

processes,sessions两者的关系:sessions=(1.1*process+5)SQL> alter system set processes=300 scope=spfile;SQL> alter system set sessions=300 scope=spfile;SQL> shutdown immediateSQL> startup在Unix或linux中,调整processes还要调整semmns(系统的信号量参数),因为每个processes会占用一个信号量。

semmni,semmns,semmsl要加大,至少要比processes大18 ;SEMMNI(10,10000;150):指定在核心中信号识别的数量。

这是可以在任意给定时间被激活的唯一信号设置数量。

缺省值是150。

最大值由系统自动调整产生。

SEMMSL(25,300;150):指定每个信号识别中信号量的最大值。

缺省值是25。

SEMMNS除最大db外的所有db 的PROCESSES之和+2*最大db的PROCESSES+10*实例数。

如3个实例进程数分别为100、100、200,则=(100+100)+2*200+10*3=630SEMOPM(10,20;10):指定在每个系统调用semop中能够被执行的信号操作量的最大值。

缺省值是10。

SHMMAX×物理内存字节数SHMMNI(10,1000;100):指定了系统范围内共享内存标识的最大值。

SHMSEG(6,15;6):指定了与每个进程相关连的共享内存块(或标识)的数量。

缺省值是6。

与每个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关。

因此,尽管一个进程拥有少于SHMSEG数值的共享内存块,它也有可能因为其有限的空间而不能与其它进程相联系。

Note6:select name,value from v$sysstat where name like '%sort%';假如我们发现sorts (disk)/ (sorts (memory)+ sorts (disk))的比例过高,则通常意味着sort_area_size部分内存较小,可考虑调整相应的参数。

相关文档
最新文档