oracle 重要的25个参数

oracle 重要的25个参数

此内容摘自 ORACLE 11gR2性能调整与优化一书,做为一个自己的笔记

1 MEMORY_TARGET :

这个初始化参数设定分配给PGA和SGA 的所有内存(11g 新参数)。设置了MEMORY_TARGET 就启用了自动内存管理(Automatic Memory Management,AMM),所以oracle 根据系统的需求分配内存,但你也可以设置关键的最小值。MEMORY_TARGET 可以完成SGA_TARGET 能完成的所有工作,此外还包括PG(MEMORY_TARGET 由于包含了重要的PGA_AGGREGATE_TARGET才变的十分重要)。
在设置了 MEMORY_TARGET 后,其他重要的参数,比如DB_CACHE_SIZE,SHARED_POOL_SIZE,PGA_AGGREGATE_TARGET,LARGE_POOL,JAVA_POOL_SIZE都会自动设置,为系统中重要的的初始化参数设置最小值是一个非常不错的想法。

2 MEMORY_MAX_TARGET:

这个参数设定可以分配给oracle的最大内存,也是MEMORY_TARGET 可以设置的最大值,注意修改此参数是要重启数据库的;
3 DB_CACHE_SIZE: 为数据缓存或者为存放数据而初始分配的内存量。如果你设置了MEMORY_TARGET 或者SGA_TARGET ,这个参数就不需要设置了,但是给这个参数设置了一个最小的值是我们建议的。
4 SHARED_POOL_SIZE: 分配给数据字典、SQL和plsql语句的内存。查询本身放在这块内存里,如果设置了MEMORY_TARGET,这个参数就需要设置了,但是给这个参数设置最小值是我们推荐的。注意在SAP里推荐设置为400M,另外注意,结果集缓存(Result Cache)的内存来自共享池,通过设置参数
RESULT_CACHE_SIZE和RESULT_CACHE_MODE(这个参数有三个值:FORCE、AUTO、MANUAL完成。最后,在11g中将这个参数包括了一些再SGA里的额外开销
(共12M),在这以前10g中是没有的,所以在11g中将这个参数设置的比10G 高至少12M.

5 SAG_TARGET:

如果使用ORACLE 的自动共享内存管理,就使用该参数自动确定数据缓存、共享池、大型池和java池大小。将该参数设置为0可以禁用这个功能。如果设置了
MEMORY_TARGET这个参数的话就不需要设置此参数了,但是如果您希望和以前的版本做对比的话,可以给这个参数设置一个最小的值。SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE和DB_CACHE_SIZE会根据这个值自动设置(或者使用MEMORY_TARGET).

6 PGA_AGGREGATE_TARGET:

所有用户的PGA内存的最高上限。如果您设置了MEMORY_TARGET,这个参数就不需要设置了,但是给这个参数设置一个最小值是个不错的想法,注意SAP指定对于OLTP系统设置为可用内存的20%,对于OLAP系统为40%。

7 SGA_MAX_SIZE: SGA_TARGET

可以设置的最大内存。如果设置了MEMORY_TARGET,这个参数就不需要设置了,但是如果需要使用SGAZ_TARGET,就需要给设置一个值。

8 OPTIMIZER_MODE:

CHOOSE、RULE、FIRST_ROWS、FIRST_ROWS_n或ALL_ROWS。尽管RULE明确的不被支持并且已经过时,人们一提起它通常怨声载道,但是我曾经在11gR2里设置过该模式

9 SEC_CASE_SENSITIVE_LOGON :

默认值为TURE,意味着密码大小写敏感(11g新参数),将其设置false可以禁用这个功能;

10 SEC_MAX_FAILED_LOGIN_ATTEMPTS:

如果用户经过多次尝试还是不能输入正确的密码,系统会锁定账户,这个参数就是设置了密码密码尝试次数。这个参数默认设置为10.当用户被锁定之后DBA必须用alter user usernmae account unlock语句来解锁。

11 CURSOR_SHARING:

把具体的的sql 转换成带有变量的SQL。这样可以减小解析的开销。默认值是EXACT。调研后可以考虑设置长FORCE.

12 OPTIMIZER_USE_INVISIBLE_INDEXES :

默认是false。可确保不可视索引在默认的情况下不被使用(11g新参数)。做一个有益的实验,将此参数设置true。可使用所有索引和检查那些错误的被设置为不可视索引(该实验可能会引起系统down机,所以只能在开发环境中)

13 OPTIMIZER_USE_PENDING_STATISTICS:

默认为false。可确保不使用待定统计信息,而设置true后就可以使用所有待定统计信息(11g新参数)

14 OPTIMIZER_INDEX_COST_ADJ:

粗略调整索引扫描成本和全表扫描成本。设定为1到10之间会加强索引的使用。设置为1到10之间的值基本上可以保证使用索引,即使有时这样设置并不适合,因为需要谨慎设置该参数,因为它的很大程度上取决于索引的设计和实现是否正确。如果正在使用 Application 11i,请注意不可以将

OPTIMIZER_USE_PENDING_STATISTICS 设置为除了默认值100以外的其他值(查看MOS文献 169935.1)。我在一次测试中见到这个参数设置为200,同时也可以查看bug 4483286.SAP 建议对于OLAP系统不要设置,对于OLTP 设置为20。

15 DB_FILE_MULTIBLOCK_READ_COUNT:

为了在全表扫描时更有效的执行I/0操作设置该参数为在一次I/0中读的块数。再11gR2中默认为128.通常不要改变这个默认值

16 LOG_BUFFER:

为内存中没有提交的事物分配的缓冲区。如果需要改变它,就必须在pfile中完成。SAP建议使用默认值。Oracle Application 将其设置为10MB.我见过有的测试设
置为100

17 DB_KEEP_CACHE_SIZE:

分配给keep池(位于缓冲区缓存之外的额外数据缓存)的内存,这些内存用于存放不希望从缓存中挤出的重要数据。

18 DB_RECYCLE_CACHE_SIZE:

分配给recycle池(位于缓冲区缓存之外的额外的数据缓存)的内存。也是第17条keep缓存之外的内存。通常情况下,DBA 为编写较差的即时用户查询的数据设置该参数。

19 OPTIMIZER_USE_SQL_PLAN_BASELINES:

默认值为ture。 意思是如果存在基线(baseline)oracle 就会使用。主要在11g中stored outline 已经不建议使用(不建议使用,但是
仍可以工作),因为它已经被SQL计划基线取代。

20 OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES:

默认值是false,意思是oracle默认情况下不捕捉sql计划基线。但是如果创建了基线,oracle会像前面的一条叙述的那也使用 (11g中的新参数)。

21 LARGE_POOL_SIZE:

分配给大型的PL/SQL 以及其他的一些不经常使用的oracle选件的大型池中的总字节数。

22 SATAISTICS_LEVEL:

用于启用顾问信息的收集,并且可以选择提供更多的O/S 统计信息来改进优化器决策。该参数的默认值是typical。

23 JAVA_POOL_SIZE:

为JVM中运行的JAVA 存储过程分配的内存

24 JAVA_MAX_SESSIONSPACE_SIZE:

用于跟踪用户会话中java类状态而是用的内存上线

25 OPEN_CURSORS:

指定用户与保持(打开)用户语句的专用区域的大小,如果见到 “ORA-01000:maximum open cursors exceeded” 错误,那么可能需要增大该参数,但是需 要确保关闭不在需要的游标。在9.2.0.5版本之前,这些打开的游标也会被缓存。如果将open_cursors 设置的过高,有时也会造成问题(ORA-4031)在 9.2.0.5版本中,SESSION_CACHED_CURSORS参数用来控制PL/SQL 中游标缓存的设置。不要将SESSION_CACHED_CURSORS设置的和 OPEN_CURSORS 一 样大,否则就可能产生ORA-4031 或者ORA-7445错误。SAP 推荐设置为2000; oracle application 把 open_cursors 设置成60将 SESSION_CACHED_CURSORS 设置成500。

注意 正确的设置好某些初始化参数可能会产生两秒钟到两个小时的差异。在对生产环境进行更改时,一定要彻底的在测试系统里调试这些改动。

26 DBLINK相关参数

解决XXX遇到的ORA-02020问题
验证open_links参数的确切含义,是一个会话中的多个链路?还是一个链路多个表同时访问?
open_links和 open_links_per_instance ,前者使指定每个会话(session)最大能打开的db link数,默认值为4
而后者的作用是使每个实例(instance)最大能打开的db link数,默认值为4。
调整参数,需要重启数据库。

alter system set open_links=100 scope=spfile;
alter system set open_links_per_instance=100 scope=spfile;
show parameter open_links
需重启数据库
posted @ 2023-06-21 15:48  数据库小白(专注)  阅读(196)  评论(0编辑  收藏  举报