简介

memoptimized rowstore 为主要基于主键列查询的表提供了快速查找数据的能力。
内存优化行存储使用系统全局区域 (SGA) 中的内存区域,称为内存优化池,在启用快速查找时存储表的哈希索引。

快速查找由 memoptimize 池中的哈希索引结构启用,该结构提供对永久固定在缓冲区缓存中的给定表的块的快速访问,以避免磁盘 I/O。
该哈希索引是在配置 Memoptimized Rowstore 时创建的,并由 Oracle 数据库自动维护。
当一个表启用快速查找时,该表的块被固定在缓冲区缓存中,对表的查询使用 memoptimize 池中的哈希索引来提高性能。

禁用现有表以进行快速查找

要禁用现有表以进行快速查找:

SQL> ALTER TABLE sh.products NO MEMOPTIMIZE FOR READ;

启用快速查找表

在 CREATE TABLE 或者 ALTER TABLE 语句中指定 MEMOPTIMIZE FOR READ。
应首先启用 memoptimize 池。

SQL> CREATE TABLE fast_lookup (id NUMBER(5) PRIMARY KEY, test_col VARCHAR2(15)) MEMOPTIMIZE FOR READ;
SQL> ALTER TABLE sh.products MEMOPTIMIZE FOR READ;

限制

无法压缩启用快速查找的表。

启用快速查找的表必须启用主键约束。

Oracle Memoptimized Rowstore
之路教程 https://onitr oad .com

在 memoptimize 池中填充表

要在 Memoptimize 池中填充表:

SQL> execute DBMS_MEMOPTIMIZE.POPULATE('SH','PRODUCTS');

启用内存优化池

要启用内存优化池,请将 MEMOPTIMIZE_POOL_SIZE 初始化参数设置为非零值。
最小设置为 100M 。

SQL> ALTER SYSTEM SET MEMOPTIMIZE_POOL_SIZE = 2G SCOPE=SPFILE;
日期:2020-09-17 00:11:30 来源:oir作者:oir