简介
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;
限制
无法压缩启用快速查找的表。
启用快速查找的表必须启用主键约束。
之路教程 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
