db_file_multiblock_read_count曾经是一个经过热烈讨论的初始化参数。该参数只有在对表或者索引进行Full Scan的时候才起作用。 在Oracle10gR2以前的版本中,DBA必须根据db_block_size参数,以及应用系统的特性,来调整db_file_multiblock_read_count参数。该参数值将影响CBO在该产生何种SQL执行计划上的判断。 我们知道如下的公式,其中max I/O chunk size跟操作系统有关,但是Oracle文档中也指出大多数操作系统上该值为1M。 db_file_multiblock_read_count = max I/O chunk size / db_block_size 在Oracle10gR2之后的版本(10gR2和11g)中,Oracle数据库已经可以根据系统的IO能力以及Buffer Cache的大小来动态调整该参数值,Oracle建议不要显式设置该参数值。但是根据Oracle官方文档对于此参数的解释: Note that if the number of sessions is extremely large the multiblock read count value is decreased to avoid the buffer cache getting flooded with too many table scan buffers. Even though the default value may be a…
Tag: Oracle11g
SPM default feature in Oracle 11g
在Oracle 11g中,为了方便用户对CBO产生的执行计划进行干预,防止像10g中那样频繁而不可预知的执行计划变更,加入了SQL Plan Management(SPM)功能,Oracle优化器小组的weblog上最近发表了连载文章对SPM功能做了详尽的描述。 那么在Oracle 11g中,SPM的默认功能是怎样的? SQL> show parameter baseline NAME TYPE VALUE ———————————— ———– ——— optimizer_capture_sql_plan_baselines boolean FALSE optimizer_use_sql_plan_baselines boolean TRUE 以上的两个参数表示,Oracle 11g默认将不会抓取任何SQL的Plan Baseline,但是如果一旦人为产生了Baseline,那么Oracle将会自动使用。这在很大程度上简化了以往为了固定执行计划所需要做的Stored Outline工作。
Database auto backup using emca
今天在itpub上有朋友提问: oracle 10g em 自动备份? 请问 ORACLE 10G EM DBCONTROL 模式下可以设置 自动备份 emca -config dbcontrol db –backup 或者在DBCA 中设置,请问在ORACLE 内部是如何实现的啊? DBA_SCHEDULER_JOBS 没找到对应的计划,OS 的CRONTAB 上也没有备份的脚本啊,EM的配置文件中也没找到对应的信息,希望大家能指点下 谢谢!!! 挺有趣的一个问题,于是在自己的11g数据库里面测试了一下,大致找到了答案,详细的回答可以参看这个帖子。 至于运行机制,个人的猜测是,现在11g数据库中默认安装有一个Job,可以从dba_jobs视图中查询到。 SQL> select schema_user,interval,what from dba_jobs; SCHEMA_USER INTERVAL WHAT ———— —————————— ———————————————————– SYSMAN sysdate + 1 / (24 * 60) EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS(); 该JOB每隔一分钟运行一次,检查sysman用户的mgmt_job和mgmt_job_schedule表,如果存在着定义了的schedule,则运行。 由这个帖子引出几点个人的看法。 1. 虽然现在OEM功能强劲,但是感觉在使用上有些凌乱,入口太多,布局不清晰。 2. 在emca中加入这个-backup选项,有些不伦不类,而且居然也没有使用Oracle自己一直在尝试革新的Schedule流程,仍然选择了Job的方式。