www808888webcom过10大oracle特性19908836661任何一个新版本Ora
Oracle的任何一个新版本,总是会带来很多新特性,今天主要介绍oracle 11g中十个特性,通过这些特性来帮助我们加深对oracle11g版本的理解。
1.Adaptive direct path read - 自适应的直接路径读 在Oracle Database 11g中有一个新特性,全表扫描可以通过直接路径读的方式来执行(Direct Path Read),这是一个合理的变化,如果全表扫描的大量数据读取是偶发性的,则直接路径读可以避免大量数据对于Buffer Cache的冲击。可是现实往往是残酷的:在很多业务系统中,全表扫描是普遍存在的常态,将大表的全表扫描全部转化为直接路径读,反而不如Cache在Buffer Cache中效率高,Direct Path Read反而成为了一个严重的负担。 当然对于小表来说,Oracle允许通过Buffer Cache来进行全表扫描,因为这可能更快,也对性能影响不大。小表受到隐含参数:_small_table_threshold 影响。如果表大于 5 倍的小表限制,则自动会使用DPR替代FTS。如果遇到这个特性的负面影响,可以设置初始化参数: _serial_direct_read 来禁用串行直接路径读,其默认值为AUTO,设置为NEVER时禁用 11g 的自动direct path read的特性。该参数可以动态在实例或会话级别修改,而无需重启实例(可以结合Event 10949设置)。 SQL> alter system set "_serial_direct_read"=auto; 当前台进程提交事务(commit)后,LGWR需要执行日志写出操作,而前台进程因此进入 Log File Sync 等待周期。在以前版本中,LGWR 执行写入操作完成后,会通知前台进程,这也就是 Post/Wait 模式;在11gR2 中,为了优化这个过程,前台进程通知LGWR写之后,可以通过定时获取的方式来查询写出进度,这被称为 Poll 的模式,在11.2.0.3中,这个特性被默认开启。这个参数的含义是:数据库可以在自适应的在 post/wait 和 polling 模式间选择和切换。 _use_adaptive_log_file_sync 参数的解释就是: Adaptively switch between post/wait and polling ,正是由于这个原因,带来了很多Bug,反而使得 Log File Sync 的等待异常的高,如果你在 11.2.0.3 版本中观察到这样的表征,那就极有可能与此有关。在遇到问题是,通常将 _use_adaptive_log_file_sync 参数设置为 False,回归以前的模式,将会有助于问题的解决。
然而一个执行计划并不总是适用于所有绑定值,为了尽可能生成准确的执行计划,Oracle Database 11g 引入了自适应游标共享的新特性,在执行共享SQL时考虑更多的因素,如果与资源开销相比,使用多个执行计划所带来的收益更重要,则会为使用绑定变量的每条SQL 语句生成多个执行计划。Adaptive Cursor Sharing 通过自适应游标共享,可以仅针对使用绑定变量的语句智能地共享游标。但是有时候这个特性会使得确定的执行计划变得不稳定,如果你确定系统中无需额外自适应的分析和变更执行计划,或者可能被不稳定的执行计划影响。那么可能需要调整这个特性的使用。关闭这个特性,可以设置隐含参数: SQL> alter session set"_optimizer_extended_cursor_sharing_rel"=none; 在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性。这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试***。 但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待,这种情形非常常见。 如果遇到这一类问题,可以通过Event 28401关闭这个特性,从而消除此类影响,以下命令将修改设置在参数文件中: ALTER SYSTEM SET EVENT = ‘28401 TRACE NAME CONTEXT FOREVER,LEVEL 1‘ SCOPE = SPFILE; 通过10大oracle特性来理解oracle 11g系统设计 通过10大oracle特性来理解oracle 11g系统设计
从Oracle 11.2.0.2版本开始,一个新的隐含参数 - _datafile_write_errors_crash_instance 被引入到数据库中,通过这个参数名就可以了解到其含义:当发生数据文件写错误时,Crash数据库实例。 为什么要引入这个参数呢?这个参数后台解决的是什么问题呢? 在归档模式下当发生文件(非SYSTEM文件)写错误时,Oracle会自动将数据文件离线,这造成了很多灾难,类似的错误日志可能是这样的: Fri Jan 13 19:32:21 2018KCF: write/open error block=0xf1fa6 online=1 file=73 /dev/rods_gm05 error=27063 txt: ‘IBM AIX RISC System/6000 Error: 22: Invalid argumentAdditional information: -1Additional information: 557056‘Automatic datafile offline due to write error onfile 73: /dev/rods_gm05 在11.2.0.2之前,如果数据库运行在归档模式下,并且写错误发生在非SYSTEM表空间文件,则数据库会将发生错误的文件离线,在从11.2.0.2开始,数据库会Crash实例以替代Offline。注意:在非归档模式下或者SYSTEM遭受错误时,数据库会直接崩溃。 为了解决数据文件损失,离线控制存在的不确定性风险,Oracle引入的 _datafile_write_errors_crash_instance 控制数据库实例直接崩溃。 如果你不能接受这一选择,那么设置参数 _datafile_write_errors_crash_instance 为False。
Cardinality Feedback - 基数反馈,是Oracle 11.2中引入的新特性,这个新特性利用SQL执行过程中的信息采集,动态的调整执行计划,以解决统计信息陈旧、无直方图或基于直方图基数计算不准确等情况。 Oracle希望由此提升执行计划的准确性,但是在某些情况下,我们可能遇到SQL 第一次执行性能最好,之后再运行其性能变差的情况。 初始化参数 _optimizer_use_feedback 可以控制这个特性的启用,设置为False关闭了这个特性: alter system set "_optimizer_use_feedback"=false;
在Oracle 11.2中, 当我们创建一个空表或者空分区时,为了加快创建速度,Oracle并不会立即分配初始段和空间,实际的表段Table Segement被延迟到第一行数据插入时创建。 该功能通过DEFERRED_SEGMENT_CREATION参数启用,默认为TRUE。延迟段创建可以节省空间,加快初始化过程,是面向性能和资源的一个优化。 这个新特性带来的一个问题是,在使用 exp / imp 进行导出导入时,不会包含这些空表,可能导致遗漏对象。 如果觉得这个特性是困扰,可以通过修改参数关闭这个特性: alter system set deferred_segment_creation=flase sscope=spfile;
在11g中,Oracle的资源管理器缺省被启用,并且时常发挥作用,并可能引发竞争。 你可能在TOP 5事件中看到类似的情景: 通过10大oracle特性来理解oracle 11g系统设计 有两个参数配合设置,可以在你不需要资源管理器时彻底关闭这个隐含的控制: SQL> alter system set "_resource_manager_always_off"=true scope=spfile; SQL> alter system set "_resource_manager_always_on"=false scope=spfile;
DRM是 Dynamic Resource Management 的简称,意思就是动态资源管理。在Oracle RAC中,所有的数据块(Data block)都有一个实例作为主实例进行管理,叫做Master,Master 负责照看好自己所管辖的data block的状态,包括锁定等,并对跨实例访问进行授权。如果能随着数据块的访问频繁动态的修改数据块的master节点,那么对应GC的grant message则会大量的减少。基于以上考虑,DRM特性应运而生。但是早期的DRM在进行 re-master的过程中长长带来短时的性能影响,在很多重要环境中,这是不能忍受的
_undo_autotune - 用于自动调整undo retention时间,设置 _undo_autotune=true,则undo_retention不再适用,Oracle会自行决定tuned_undo_retention; 以下设置在需要时对这些特性做出调整: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |