Oracle优化器二十六个参数

数据库 Oracle
这里介绍Oracle优化器选择基于规则的优化;若设置为COST,并且在数据字典中存在有统计信息,则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时,可改善某些类型的事务性能。

(8)LOG_ARCHIVE_BUFFER_SIZE此参数的值依赖于操作系统,它与LOG_ARCHIVE_BUFFER 参数一起用于调整有归档日志的运行,使其运行速度尽量加快,但不能快到降低性能。仅当直接归档到磁带设备时才需要增加这些参数的值,重做日志缓冲区要等待归档日志缓冲区变得可用。

(9)LOG_ARCHIVE_BUFFER该参数指定用于归档的日志时的缓冲区数。

(10)LOG_BUFFER该参数指明分配给SGA中的日志缓冲区的字节数,该参数值较大时,可减少日志I/O的次数。对于繁忙的系统不宜采用大于或等于64K的值。缺省值-般为数据库块的4倍。

(11)LOG_CHECKPOINT_TIMEOUT该参数指明两个检查点之间的时间间隔,若指定为0时,则说明不允许进行基于时间的检查点。

(12)LOG_CHECKPOINT_INTERVAL该参数用来确定检查点进程的执行频率。这个数值设置成取检查点之前处理的重做缓冲区块的数量。

(13)LOG_FILES该参数指定运行期间数据库可打开的日志文件数。若需要较大的SGA空间,而不需多个日志文件,则可减少该值。

(14)LOG_SIMULTANEOUS_COPIES该参数是日志缓冲区副本闩锁的最大数,为同时写日志项所用。为提高性能,可设置此参数为两倍的CPU数,对单进程系统,该值多数设置为0,此时断开闩锁。

(15)LOG_SMALL_ENTRY_MAX_SIZE该参数与LOG_SIMULTANEOUS_COPIES参数配合使用。若日志项大于此项,则在给缓冲区分配空间并获得日志复制闩锁之后,用户进程释放日志复制闩锁。

(16)OPTIMIZRER_MODE若该参数的值为RULE,则Oracle优化器选择基于规则的优化;若设置为COST,并且在数据字典中存在有统计信息,则Oracle优化器选择基于代价的优化方法进行优化。

(17)SEQUENCE_CACHE_ENTRIES该参数指明在SGA中可进行高速缓存的序列数,用于直接存取。该高速缓存区是基于最近最少使用(LRU)的算法进行管理的。若此值设置得较高,则可达到较高的并发性。

(18)SEQUENCE_CACHE_HASH_BUCKETS该参数用于加速查看高速缓冲区最近请求的最新序列的桶式地址数,每个桶式地址占8个字节。高速缓冲区以散列表排列,该参数应为质数。

(19)SERIALIZEABLE此参数用于保证重复读的一致性。当它设置为TRUE时,查询可保证表级读一致,以防止在此查询提交之前的修改。

(20)SHARED_POOL_SIZE该参数指定共享池的大小,其中包括共享光标及存储过程。在多用户系统中,较大的SHARED_POOL_SIZE值可改善SQL语句的执行性能,但较小的值可节省内存。

(21)SMALL_TABLE_THRESHOLD该参数决定SGA中用于扫描的缓冲区的数目,若表的数目小于该值,则该表可整个地读入高速缓存区。若表大于该值,则立即重用该缓冲区。一般用缺省值可使性能最好。

(22)SORT_AREA_TETAINED_SIZE这是会话内存的最大数量,用于内存排序。当从排序空间提出最后-行时,便释放该内存。若排序要较大的内存,则分配一临时段,排序便可在盘上进行。用于排序的最大总量可由SORT_AREA_SIZE指定,而不用此参数。可以分配同样大小的多个排序空间,不过一般对于复杂的查询才需要。

(23)SORT_AREA_SIZE该参数用于指定进行外排序(磁盘)时所需PGA内存的最大数量,以字节为单位。当排序行写入磁盘时,该内存被释放。增大该参数的值,可改进排序效率。一般不调整该参数,除非排序量很大时才调整。

(24)SORT_SPACEMP_SIZE该参数仅在排序量很大时才调整该参数。可用下式设置该参数,使排序能最佳地使用盘空间。

(25)SQLTRACE该参数设置为TRUE时,便可跟踪,以获得改善性能的信息。因为跟踪会增加开销,所以一般仅在收集信息时才置为TRUE。在实际使用时,可用ALTER SESSION命令覆盖它。

(26)TRANSACTION该参数设置并发事务的最大数。若此值较大,则需增加SGA空间和分配的回滚段数量。缺省值大于PROCESS时,可允许递归事务。

【编辑推荐】

  1. 闲扯Oracle数据导入
  2. 精炼概括Oracle性能测试
  3. 简介Oracle INDEX提示
  4. 五分钟精通Oracle Hints
  5. 简单介绍Oracle驱动表
责任编辑:佚名 来源: 博客
相关推荐

2016-10-27 15:58:35

魔术方法PHP

2018-05-14 17:36:59

2016-12-01 19:51:03

PHP魔术详解

2009-07-01 15:45:39

JSP常见问题

2021-11-29 14:09:15

数据资产保护网络安全攻击

2011-08-18 09:18:10

宕机服务器

2009-01-22 11:09:16

软考英语练习

2015-03-03 14:36:26

IT运维管理

2021-05-28 10:02:05

Swift5 字符串String

2011-06-27 16:26:39

Oracle优化器RBOCBO

2018-01-08 09:45:50

华为云私有云

2010-05-12 14:04:29

Oracle优化器

2009-04-28 09:25:15

Oracle系统参数优化

2010-08-23 09:23:48

IEFirefox兼容性

2010-03-24 11:46:45

TurboLinux系

2017-12-21 14:33:29

半月刊

2009-07-07 09:39:33

中兴通讯股权激励
点赞
收藏

51CTO技术栈公众号