1.      说明

从18c开始支持Memoptimized Rowstore,可用于提高查询性能。针对频繁基于主键查询的SQL语句的性能提高十分明显。

其是通SGA中的已一块存储区,叫memoptimize pool,其大小通过MEMOPTIMIZE_POOL_SIZE设置,其中存储着启用了fast lookup表的散列索引。

可以通过CREATE TABLE或ALTER TABLE…MEMOPTIMIZE FOR READ语句来启用表的fast lookup。

fast lookup是通过memoptimize pool中的散列索引结构来实现的,它可以快速访问表的块,从而永久的固定在缓冲区缓存中,以避免磁盘I/O。当配置并由Oracle数据库自动维护memoptimization Rowstore时,将创建这个散列索引。当启用表进行快速查找时,表的块被固定在缓冲区缓存中,表上的查询使用memoptimization pool中的散列索引来提高性能。

启用fast lookup要求:

  • 表不能被压缩
  • 表必须有主键约束

2.      启用memoptimize pool

要使用fast lookup必须先配置memoptimize pool,COMPATIBLE初始化参数要设置为18.0.0及以上。

SQL> SHOW PARAMETER MEMOPTIMIZE_POOL_SIZENAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------memoptimize_pool_size                big integer 0SQL> ALTER SYSTEM SET MEMOPTIMIZE_POOL_SIZE=100M SCOPE=SPFILE;System altered.SQL> SHUTDOWN IMMEDIATEDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 1.1832E+10 bytesFixed Size                  9010864 bytesVariable Size            1.1799E+10 bytesDatabase Buffers           16777216 bytesRedo Buffers                7766016 bytesDatabase mounted.Database opened.SQL> SHOW PARAMETER MEMOPTIMIZE_POOL_SIZENAME                    TYPE        VALUE------------------------------------  ------------------- ------------------memoptimize_pool_size      big integer   100M

3.      使用Fast Lookup

3.1.  启用Fast Lookup

可以创建表时指定MEMOPTIMIZE FOR READ,或者后面修改表时指定MEMOPTIMIZE FOR READ,都可以实现表启用fast lookup。

如:

  • 创建表
SQL> create table cndba(id number(6) primary key,name varchar2(50))memoptimize for read;Table created.
  • 修改
ALTER TABLE lei.cndba MEMOPTIMIZE FOR READ;

3.1.1.   查看执行计划

可以看到READ OPTIM表示了,是利用了Fast Lookup。

SQL> explain plan for select name from cndba where id=3;Explained.SQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT------------------------------------------------------------------------Plan hash value: 313818278------------------------------------------------------------------------| Id  | Operation                              | Name        | Rows  | Bytes | Cost (%CPU)| Time     |------------------------------------------------------------------------|   0 | SELECT STATEMENT                       |             |     1 |    40 |     1   (0)| 00:00:01 ||   1 |  TABLE ACCESS BY INDEX ROWID READ OPTIM| CNDBA        |     1 |    40 |     1   (0)| 00:00:01 ||*  2 |   INDEX UNIQUE SCAN READ OPTIM         | SYS_C006370 |     1 |       |     1   (0)| 00:00:01 |------------------------------------------------------------------------Predicate Information (identified by operation id):PLAN_TABLE_OUTPUT------------------------------------------------------------------------2 - access("ID"=3)14 rows selected.

3.2.  将表填充到Memoptimize Pool

execute DBMS_MEMOPTIMIZE.POPULATE('LEI','CNDBA');

3.3.  禁用Fast Lookup

ALTER TABLE lei.cndba NO MEMOPTIMIZE FOR READ;

3.3.1.   再看执行计划

不再使用fast lookup特性。

SQL> explain plan for select name from cndba where id=3;Explained.SQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT------------------------------------------------------------------------Plan hash value: 313818278------------------------------------------------------------------------| Id  | Operation                   | Name        | Rows  | Bytes | Cost (%CPU)| Time     |------------------------------------------------------------------------|   0 | SELECT STATEMENT            |             |     1 |    40 |     1   (0)| 00:00:01 ||   1 |  TABLE ACCESS BY INDEX ROWID| CNDBA        |     1 |    40 |     1   (0)| 00:00:01 ||*  2 |   INDEX UNIQUE SCAN         | SYS_C006370 |     1 |       |     1   (0)| 00:00:01 |------------------------------------------------------------------------Predicate Information (identified by operation id):PLAN_TABLE_OUTPUT------------------------------------------------------------------------2 - access("ID"=3)14 rows selected.

Oracle 18c新特性-Memoptimized Rowstore(内存优化的行存储)相关推荐

  1. Oracle 18c新特性:多租户舰队 CDB Fleet

    Oracle 18c新特性:多租户舰队 CDB Fleet 在 Oracle 18c 中,多租户的一个新特性 CDB Fleet 被引入进来,我们可以把这个特性称为:多租户舰队.(关注本公众号: Or ...

  2. oracle18c升级19,Oracle 18C新特性测试之滚动升级

    原标题:Oracle 18C新特性测试之滚动升级 7月24日Oracle 18c通用版本正式对外发布后,三墩IT人在第一时间选取了Oracle 18c PDB在数据同步.迁移.切换方面的三项新功能的测 ...

  3. Oracle 18c 新特性:动态 Container Map 增强 Application Container 灵活性

    数据技术嘉年华等你来 活动预告:11.16-17日,北京市东三环中路61号富力万丽酒店,相聚数据技术嘉年华,(99元票务)免费购票倒计时,点击查看大会详情. 盖老师带来主题"稳筑基石,云帆万 ...

  4. Oracle 18c新特性详解-多租户专题

    Oracle 18c,传说中全球第一款自动驾驶数据库,正式到来.18c不仅仅是数据库,更是一种云服务,包括着Oracle数据库18c,Oracle云基础架构和Oracle云工具,机器学习,能够实现自治 ...

  5. Oracle 18c新特性:Schema-Only 帐号提升应用管理安全性

    在 Oracle 18c 中,一个特殊类型的帐号被引入到数据库当中,这特特性被称为 Schema-Only 帐号,这个帐号通过 NO AUTHENTICATION 语句建立,没有密码,也就不允许直接登 ...

  6. Oracle 18c 新特性之CDB航母

    给用户介绍Oracle多租户新特性时,多次忍不住将CDB比喻为航母,PDB则是停靠之上的舰载机.没想到18c竟然出了航母战斗群,^_^ 18c中引入了CDB fleet新特性,能够实现以下的功能: 扩 ...

  7. Oracle 18c 新特性-在线合并分区和子分区

    说明 从18c开始支持在线合并分区或子分区,但不能合并引用分区表的分区.相反,父表上的合并操作将级联到所有子表.但是,当在主表上执行合并操作以合并分区或子分区时,可以使用dependency子句为从属 ...

  8. 专家视角 | 小荷的 Oracle Database 18c 新特性快速一瞥

    作者介绍:何剑敏  大疆创新 互联网事业部 运维部数据库技术团队负责人,曾供职于中国联通,卓望数码,IBM 和 ORACLE ACS 华南团队.多年从事一线的数据库运维工作,有丰富项目经验.维护经验和 ...

  9. Oracle 12c新特性-多租户的维护管理

    云和恩墨技术专家 现就职于云和恩墨,为某省电信公司数据库运维服务:在IT行业拥有10年以上的工作经历.擅长 ORACLE 数据库运维管理.shell 脚本开发:长期服务于电信.金融,政府行业:具有丰富 ...

最新文章

  1. iOS实现传递不定长的多个参数
  2. php设置ip,使用PHPIP的IP管理
  3. python官网下载步骤64位-Python 3.7 64位下载
  4. 演练:在组件设计器中创建 Windows 服务应用程序
  5. 5-python学习——条件语句
  6. 【转】带你玩转Visual Studio——01.开篇介绍
  7. 云栖专辑 | 阿里开发者们的第8个感悟:在信息大爆炸的时代,保持专注度显得尤为可贵...
  8. python执行shell命令行_python执行命令行:python中执行shell命令行read结果
  9. HTML5 Web Storage事件
  10. 无人驾驶插秧机智能辅助系统_无人驾驶插秧机搭载北斗导航驾驶系统,误差仅在2.5厘米内...
  11. Twitterrifi常用快捷键汇总
  12. 概率论与数理统计【三】一维随机变量及其分布
  13. 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版
  14. 服务器lsass状态代码c0000005,lsass.exe是什么进程?Win7系统提示Lsass.exe系统错误的原因及解决方法...
  15. 在quartus II15.0中调用Modelsim进行时序仿真时出现Rerun the EDA Netlist Writer的原因
  16. 大连python薪酬_大连Python开发靠谱吗
  17. 《天赋》:第一章 天赋
  18. TLS Handshake failed: tls: server selected unsupported protocol version 301
  19. AI软件视频生成工具 抖音蓝V运营小助手
  20. Doris安装问题记录连续更新

热门文章

  1. 从方法到实践:主数据全生命周期管理
  2. -XX:CMSInitiatingOccupancyFraction
  3. java.awt包_Java中awt包
  4. Ubuntu操作系统安装中文输入法
  5. Python教程之粒子运动轨迹动态绘图
  6. absolute定位宽高尺寸继承
  7. 神兽麒麟kylin驾驭指南
  8. STM32之光照强度(BH1750)
  9. 瞬时转速 matlab,基于瞬时转速的发动机故障诊断研究
  10. PDF添加页码的工具有什么 PDF添加页码的小窍门