暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle 20c 新特性:Automatic In-Memory 自动内存管理的增强

原创 eygle 2020-02-23
1832

在Oracle Database 20c中,Automatic In-Memory(AIM)管理功能得到了显著增强。

通过对 INMEMORY_AUTOMATIC_LEVEL 初始化参数添加了一个新的HIGH选项,Oracle 实现了自动化的内存压缩对象管理。

现在这个参数具有四个选项:

INMEMORY_AUTOMATIC_LEVEL = { LOW | MEDIUM | HIGH | OFF }
复制

当设置为 HIGH 之后,默认情况下,所有未预先存在的INMEMORY设置的对象,都会自动设置为INMEMORY MEMCOMPRESS AUTO。
然后,AIM使用访问跟踪和列统计信息自动管理填充到内存(IM)列存储中的对象。这解决了客户最常遇到的问题之一,即“如何确定要填充到IM列存储中的对象?”
aim.png

LOW和MEDIUM的先前参数选项仍然存在,并且功能与在Oracle Database 18c中引入时相同。但是,使用Oracle Database 20c中新的HIGH选项,数据库将自动管理IM列存储的内容。它使用类似于热图数据的访问跟踪和列统计基础结构监视分段活动,该基础结构是作为自动数据优化(ADO)的一部分引入的。

将AIM设置为HIGH时,将根据使用情况自动逐出并填充分段。您不必选择要在内存中启用的对象。此外,AIM也可以自动压缩各个列。所有这些都是为了最大程度地利用IM列存储并自动提供最佳性能!

当然,如果您不希望在IM列存储中填充特定对象,则仍可以将其手动设置为NO INMEMORY。

如果您决定不再使用INMEMORY_AUTOMATIC_LEVEL参数的HIGH设置,那么当您更改或取消设置参数值时,所有带有MEMCOMPRESS AUTO的段都将设置为NO INMEMORY。

image.png
AIM的另一个有趣功能是,您可以调整AIM考虑用于细分用途的窗口。换句话说,可以将AIM调整为仅考虑与AWR一致的对象使用情况统计信息。这样,这些统计信息就不会因不活动时间段,其他应用程序使用情况甚至维护活动而受到影响。

AIM运行类似于ADO的任务,并且这些任务在两个数据字典视图中公开。
可以查询视图 DBA_INMEMORY_AIMTASKS 和 DBA_INMEMORY_AIMTASKDETAILS 来查看AIM所执行的操作。
当然,您仍然可以使用视图v$im_segments查询IM列存储的内容,并使用视图v$inmemory_area查看已使用了多少内存。

这是 Oracle 20c 增强的一个重要特性,非常值得关注和验证。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论