0

盘点 Oracle 11g 中新特性带来的10大性能影响(下)『赠书』

盖国强 2017-08-07
208


还记得我们前些天盘点的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事件中看到类似的情景:


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

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)都有一个实例作为主实例进行管理,叫做Master,Master 负责照看好自己所管辖的data block的状态,包括锁定等,并对跨实例访问进行授权。

如果能随着数据块的访问频繁动态的修改数据块的master节点,那么对应GC的grant 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;



  赠书

在本文评论区留下你那些年踩过的坑,并在本文发布后的隔天中午12点成为点赞数最多的两名,即可获得由孙风栋老师编著的《Oracle达人修炼手册》,特别鸣谢华章科技&机械工业出版社提供图书赞助。


《Oracle达人修炼秘籍》

《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南》是Oracle数据库领域独特的、具有创新意义的实力之作。详细讲解了Oracle数据库的管理、开发、性能优化,以及PL/SQL编程的相关知识。



加入"云和恩墨大讲堂",参与讨论学习

搜索 盖国强(Eygle) :eyygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。


关注微信,获得后续精彩分享


最后修改时间:2020-05-07 23:55:33
「喜欢文章,快来给作者赞赏墨值吧」
文章转载自盖国强,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新发布
暂无内容,敬请期待...
数据库资讯
最新 热门 更多
本月热门
近期活动
全部
暂无活动,敬请期待...
相关课程
全部