温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

【恩墨学院】 盘点 Oracle 11g 中新特性带来的10大性能影响(下)

发布时间:2020-08-08 14:04:38 来源:ITPUB博客 阅读:166 作者:恩墨学院 栏目:关系型数据库


【恩墨学院】 盘点 Oracle 11g 中新特性带来的10大性能影响(下)
还记得我们前些天盘点的Oracle 11g 的10大性能影响(上)吗?


Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先引起的是一些麻烦,因为对于心技术的不了解,因为对于旧环境的不适应,从Oracle产品到技术服务运维,总是要走过一个磨合的长期过程。


那么这次,我们将继续为大家分享那些新特性带来的新烦恼,为那些准备或者刚刚踏入这个新版本的用户,作为借鉴和参考。


6. _optimizer_use_feedback - 优化器的基数反馈


Cardinality Feedback - 基数反馈,是Oracle 11.2中引入的新特性,这个新特性利用SQL执行过程中的信息采集,动态的调整执行计划,以解决统计信息陈旧、无直方图或基于直方图基数计算不准确等情况。


Oracle希望由此提升执行计划的准确性,但是在某些情况下,我们可能遇到SQL 第一次执行性能最好,之后再运行其性能变差的情况。


初始化参数 _optimizer_use_feedback 可以控制这个特性的启用,设置为False关闭了这个特性:

alter system set “_optimizer_use_feedback=false;


7. deferred_segment_creation - 延迟段创建


Oracle 11.2中, 当我们创建一个空表或者空分区时,为了加快创建速度,Oracle并不会立即分配初始段和空间,实际的表段Table Segement被延迟到第一行数据插入时创建。


该功能通过DEFERRED_SEGMENT_CREATION参数启用,默认为TRUE。延迟段创建可以节省空间,加快初始化过程,是面向性能和资源的一个优化。

这个新特性带来的一个问题是,在使用 exp / imp 进行导出导入时,不会包含这些空表,可能导致遗漏对象。


如果觉得这个特性是困扰,可以通过修改参数关闭这个特性:

alter system set deferred_segment_creation=flase sscope=spfile;


8. _resource_manager_always_on - 资源管理器


11g中,Oracle的资源管理器缺省被启用,并且时常发挥作用,并可能引发竞争。


你可能在TOP 5事件中看到类似的情景:


 
【恩墨学院】 盘点 Oracle 11g 中新特性带来的10大性能影响(下)

有两个参数配合设置,可以在你不需要资源管理器时彻底关闭这个隐含的控制:

SQL> alter system set "_resource_manager_always_off"=true scope=spfile; 

SQL> alter system set "_resource_manager_always_on"=false scope=spfile;


9. _gc_policy_time - RAC集群中的DRM管理


DRM是 Dynamic Resource Management 的简称,意思就是动态资源管理。在Oracle RAC中,所有的数据块(Data block)都有一个实例作为主实例进行管理,叫做MasterMaster 负责照看好自己所管辖的data block的状态,包括锁定等,并对跨实例访问进行授权。

如果能随着数据块的访问频繁动态的修改数据块的master节点,那么对应GCgrant message则会大量的减少。基于以上考虑,DRM特性应运而生。但是早期的DRM在进行 re-master的过程中长长带来短时的性能影响,在很多重要环境中,这是不能忍受的。


如果希望关闭DRM这个特性,可以结合设置 _gc_policy_time  _gc_undo_affinity :

alter system set "_gc_policy_time" = 0 scope=spfile;

alter system set "_gc_undo_affinity" = false scope=spfile;


10. _cleanup_rollback_entries _undo_autotune - UNDO的清理和调整


UNDO的管理中,如何设置保留时间,清理回滚段条目,释放UNDO空间,在高事务率的数据库中非常重要。


_cleanup_rollback_entries - 指定回滚时每次回滚的ENTRIES个数,默认为100,可以设置更高提升回滚速度;


_undo_autotune - 用于自动调整undo retention时间,设置 _undo_autotune=true,则undo_retention不再适用,Oracle会自行决定tuned_undo_retention


以下设置在需要时对这些特性做出调整:

alter system set "_undo_autotune" = false scope=spfile;

alter system set "_cleanup_rollback_entries" = 1000 scope=spfile;



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI