Oracle参数会记录哪一些信息,Oracle面试宝典-参数篇

Oracle

面试宝典

-

参数篇

请问在安装完

Oracle

数据库后,你会去调整哪些参数?

audit_trail

审计(Audit

)用于监视用户所执行的数据库操作,审计记录可存在数据字典表,当数据库的审计是开启时,在语句执行阶段产生审计记录。由于审计表(AUD$

)存放在SYSTEM

表空间,因此为了不影响系统的性能,保护SYSTEM

表空间,建议把AUD$

移动到其他的表空间上,或者关闭审计。

参考命令:alter system set audit_trail='NONE' #INSTANCE# scope=spfile;

_optimizer_adaptive_cursor_sharing

隐含参数 _optimizer_adaptive_cursor_sharing

能控制自适应式游标共享的部分行为,由 Oracle

自适应的处理绑定变量的窥探,但这可能会触发性能问题。 Oracle

建议在非技术指导下,将其关闭掉。

参考命令:alter system set "_optimizer_adaptive_cursor_sharing"=FALSE #INSTANCE#;

_optimizer_extended_cursor_sharing

建议禁用自适应游标共享,将隐含参数_optimizer_extended_cursor_sharing

设置为 NONE

参考命令:alter system set "_optimizer_extended_cursor_sharing"='NONE' #INSTANCE#;

_optimizer_extended_cursor_sharing_rel

建议禁用自适应游标共享,将隐含参数_optimizer_extended_cursor_sharing_rel

设置为 NONE

参考命令:alter system set "_optimizer_extended_cursor_sharing_rel"='NONE' #INSTANCE#;

parallel_force_local

为了降低集群间的数据交互,建议并行进程强制在本地实例分配,以便降低集群间的数据交互。

参考命令:alter system set parallel_force_local=TRUE #INSTANCE#;

_gc_policy_time

DRM

(Dynamic Resource Mastering

)负责将 Cache

资源 Remaster

到频繁访问这部分数据的节点上,从而提高 RAC

的性能。但是 DRM

在实际使用中存在诸多 Bug

,频繁的 DRM

会引发实例长时间 Hang

住甚至是宕机,建议关闭 DRM

参考命令:alter system set "_gc_policy_time"=0 #INSTANCE# scope=spfile;

_gc_undo_affinity

建议关闭集群 Undo Affinity

,降低集群 交互,避免触发相关 BUG

参考命令:alter system set "_gc_undo_affinity"=FALSE #INSTANCE# scope=spfile;

_optimizer_use_feedback

基数反馈(Cardinality Feedback

)是 Oracle 11.2

中引入的关于 SQL

性能优化的新特性,该特性主要针对统计信息陈旧、无直方图或虽然有直方图但仍基数计算不准确的情况,Cardinality

基数的计算直接影响到后续的 JOIN COST

等重要的成本计算评估,造成 CBO

选择不当的执行计划。但是该参数存在不稳定因素,可能会带来执行效率的问题,建议关闭优化器反馈。

参考命令:alter system set "_optimizer_use_feedback"=FALSE #INSTANCE#;

deferred_segment_creation

延迟段创建会导致使用 Direct

方式的 Export

出来的 DMP

文件无法正常导入(文档 ID 1604983.1

),建议关闭延迟段创建的特性。

参考命令:alter system set deferred_segment_creation=FALSE #INSTANCE#;

_undo_autotune

隐含参数 _undo_autotune

负责 undo retention

(即 undo

段的保持时间)的自动调整,若由 Oracle

自动负责 undo retention

,则 Oracle

会根据事务量来占用 undo

表空间,可能会形成 undo

表空间的争用,建议将其关闭。

参考命令:alter system set "_undo_autotune"=FALSE #INSTANCE#;

十一

_optimizer_null_aware_antijoin

参数 _optimizer_null_aware_antijoin

是在 Oracle 11g

引入的新参数,它用于解决在反连接(Anti-Join

)时,关联列上存在空值(NULL

)或关联列无非空约束的问题。但是该参数不稳定,存在较多的 Bug

,为避免触发相关 Bug

,建议关闭。

参考命令:alter system set "_optimizer_null_aware_antijoin"=FALSE #INSTANCE#;

十二

_PX_use_large_pool

并行执行的从属进程在工作时需要交换数据和信息,默认从 Shared Pool

中分配内存空间。当 _PX_use_large_pool=TRUE

时并行进程将从 Large Pool

中分配内存,减少对共享池(Shared Pool

)的争用。

参考命令:alter system set "_PX_use_large_pool"=TRUE scope=spfile #INSTANCE#;

十三

_partition_large_extents

建议关闭分区使用大的初始化区(Extent

)。

参考命令:alter system set "_partition_large_extents"=FALSE #INSTANCE#;

十四

_use_adaptive_log_file_sync

Oracle

默认启用 _use_adaptive_log_file_sync

参数,使得 LGWR

进程写日志的方式能自动在 post/wait

和 polling

两种方式之间进行取舍,可能会导致比较严重的写日志等待(log file sync

的平均单次等待时间较高),

建议关闭此功能。

参考命令:alter system set "_use_adaptive_log_file_sync"=FALSE #INSTANCE#;

十五

_memory_imm_mode_without_autosga

alter system set "_memory_imm_mode_without_autosga"=false sid='*' scope=spfile;

说明:11.2.0.3

开始,即使是手工管理内存方式下,如果某个POOL

内存吃紧,Oracle

仍然可能会自动调整内存,用这个参数来关闭这种行为。

十六

event

alter system set event='28401 trace name context forever,level 1','10949 trace name context forever,level 1' sid='*' scope=spfile;

说明:这个参数主要设置2

个事件:

1

) 10949

事件用于关闭11g

的自动serial direct path read

特性,避免出现过多的直接路径读,消耗过多的IO

资源。

2

) 28401

事件用于关闭11g

数据库中用户持续输入错误密码时的延迟用户验证特性,避免用户持续输入错误密码时产生大量的row cache lock

或library cache lock

等待,严重时使数据库完全不能登录。

十七

_b_tree_bitmap_plans

alter system set “_b_tree_bitmap_plans”=false sid=’*’ scope=spfile;

说明:对于OLTP

系统,Oracle

可能会将两个索引上的ACCESS PATH

得到的rowid

进行bitmap

操作再回表,这种操作有时逻辑读很高,对于此类SQL

使用复合索引才能从根本上解决问题。

十八

enable_ddl_logging

alter system set enable_ddl_logging=true sid='*' scope=spfile;

说明:在11g

里面,打开这个参数可以将ddl

语句记录在alert

日志中。以便于某些故障的排查。建议在OLTP

类系统中使用。

十九

parallel_max_servers

alter system set parallel_max_servers=cpu_count

逻辑CPU

数 sid='*' scope=spfile;

说明:这个参数默认值与CPU

相关,OLTP

系统中将这个参数设置小一些,可以避免过多的并行对系统造成冲击。

二十

_optimizer_ads_use_result_cache

alter system set "_optimizer_ads_use_result_cache" = FALSE scope=spfile sid='*';

说明:12c

中关闭result_cache

,容易触发latch free

等bug

二十一

_datafile_write_errors_crash_instance

alter system set "_datafile_write_errors_crash_instance"=FALSE scope=spfile sid='*';

说明:在 PDB

由于某些原因丢失数据文件后,允许 CDB

继续运行。注意:

只对 PDB

的非系统数据文件有效。

二十二

_optimizer_adaptive_plans

alter system set "_optimizer_adaptive_plans"=FALSE scope=spfile sid='*';

说明:关闭自适应执行计划。

二十三

_optimizer_aggr_groupby_elim

alter system set "_optimizer_aggr_groupby_elim"=FALSE scope=spfile sid='*';

19567916.8

,Wrong results when GROUP BY uses nested queries in 12.1.0.2

二十四

_optimizer_reduce_groupby_key

alter system set "_optimizer_reduce_groupby_key"=FALSE scope=spfile sid='*';

说明:Wrong results from OUTER JOIN with a bind variable and a GROUP BY clause

二十五

_optimizer_cost_based_transformation

alter system set "_optimizer_reduce_groupby_key"=off scope=spfile sid='*';

说明:关闭COST

查询转换。

二十六

job_queue_processes

alter system set job_queue_processes=cpu_core

(CPU

核数) scope=spfile sid='*';

说明:默认1000

,建议调整为CPU

核数。

二十七

optimizer_dynamic_sampling(

默认

2)

alter system set optimizer_dynamic_sampling=4 scope=both sid='*';

说明:动态采样,有些场景下,可根据时间情况调大采样级别,比如调到4

二十八

optimizer_index_cost_adj(

默认

100)

alter system set optimizer_index_cost_adj=40 scope=both sid='*';

说明:优化器计算通过索引扫描访问表数据的cost

开销

某些场景下,值越大优化器越倾向于使用全表扫描。相反,值越小,优化器越倾向于使于索引扫描。可根据实际情况进行调整,比如调小到40

二十九

_optimizer_mjc_enabled

alter system set "_optimizer_mjc_enabled" = false scope=both sid='*';

说明:

某些场景下,需要MERGE JOIN CARTESIAN

注意:

参数和说明,参考墨天轮

查询参数值:

select

a.ksppinm

name

,

b.ksppstvl

value

,

a.ksppdesc

description

from

x$ksppi a

,

x$ksppcv b

where

a.indx

=

b.indx

and

a.ksppinm

in

(

'_optimizer_adaptive_cursor_sharing'

,

'_optimizer_extended_cursor_sharing'

,

'_optimizer_extended_cursor_sharing_rel'

,

'_gc_policy_time'

,

'_gc_undo_affinity'

,

'_optimizer_use_feedback'

,

'_undo_autotune'

,

'_optimizer_null_aware_antijoin'

,

'_partition_large_extents'

,

'_use_adaptive_log_file_sync'

,

'_memory_imm_mode_without_autosga'

,

'_b_tree_bitmap_plans'

,

'_optimizer_mjc_enabled'

,

'_optimizer_ads_use_result_cache'

,

'_datafile_write_errors_crash_instance:'

,

'_optimizer_adaptive_plans'

,

'_optimizer_aggr_groupby_elim'

,

'_optimizer_reduce_groupby_key'

,

'_optimizer_cost_based_transformation'

,

'audit_trail'

,

'deferred_segment_creation'

,

'event'

,

'enable_ddl_logging'

,

'job_queue_processes'

,

'optimizer_dynamic_sampling'

,

'optimizer_index_cost_adj'

)

order

by

1

;

2d5d70121a6a8b0fe8e7de4701962df6.png

如何查看当前系统设置过哪些

event?

SQL> alter system set event='28401 trace name context forever,level 1','10949 trace name context forever,level 1' sid='*' scope=spfile;

SQL> shutdown immediate

SQL> startup

---1

直接查看参数

a1588cdad1778751614a712d2b3fb996.png

---2 oradebug

SQL> oradebug setmypid

Statement processed.

SQL> oradebug eventdump system

28401 trace name context forever,level 1

10949 trace name context forever,level 1

---3

告警日志

[oracle@cjcos ~]$ cd /u01/app/oracle19/diag/rdbms/cjcdb01/cjcdb01/trace/

[oracle@cjcos trace]$ vim alert_cjcdb01.log

7ae779c14516f7179462ee6acb40d9fa.png

欢迎关注我的微信公众号

"IT

Chen"

,共同学习,共同成长!!!

2cc1588d8da999ab8029777eb92f5d42.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值