Oracle 21c Automatic In-Memory

        从21c 开始,oracle 数据库推出automatic in-memory 特性,通过对INMEMORY_AUTOMATIC_LEVEL 参数增加一个high选项,自动化in-memory 对象管理,dba 无需手动指定哪些对象需要加载到in-memory 内存区域,由oralce自动根据访问追踪和列存储统计信息自动管理要加载到in-memory 内存区域的对象。实际上automatic in-memory 特性在19c 中已经存在,只不过只支持exadata 版本。

      这里演示21c automatic inmemeory 特性:

     启用automatic inmemeory 特性之前:

      聚合:

     1668650931461

1668650987054

1668651177433

1668651247592

查找:

1668651364902

1668651438475

 

   开启automatic in-memory:

   a、指定in-memory 内存区域大小:

alter system set inmemory_size=20g scope=spfile;

   b、将inmemory_automatic_level 参数值设为high:

alter system set inmemory_automatic_level=HIGH scope=spfile;

   c、重启数据库实例:

    startup force;

 

启用automatic inmemeory 特性之后:

聚合:

 

1668652190164

1668652225507

1668653295261

1668653356576

查找:

1668654116809

1668654162163

 

   可以看到速度提升很明显,需要注意的是第一次执行可能还是走传统的表扫描模式,需要执行几次,oracle 后台监测到将表加载到in-memory 内存区域才会生效。

posted @ 2022-11-17 11:26  踏雪无痕2017  阅读(187)  评论(0)    收藏  举报