・オンデマンド移入
デフォルトでは、INMEMORY PRIORITYパラメータはNONEに設定されています。
この場合、データベースでは、オブジェクトは表の全体スキャンを通じてアクセスされるときのみ移入されます。
・優先度ベース移入
PRIORITYがNONE以外の値に設定されている場合、Oracle databaseでは、内部的に管理される優先順位キーを使用して、オブジェクトが自動的に移入されます。
データベース・インスタンスの再起動後に、列データをIM列ストアに自動的に移入します
表新規作成
表変更
sqlplus test/test@pdb11
drop table sh.test_inmem purge;
CREATE TABLE sh.test_inmem (
id NUMBER(25) PRIMARY KEY,
test_col VARCHAR2(15))
INMEMORY ;
drop table HR.EMPLOYEES2 purge;
create table HR.EMPLOYEES2 as select * from HR.EMPLOYEES;
insert into HR.EMPLOYEES2 select * from HR.EMPLOYEES2;
insert into HR.EMPLOYEES2 select * from HR.EMPLOYEES2;
insert into HR.EMPLOYEES2 select * from HR.EMPLOYEES2;
insert into HR.EMPLOYEES2 select * from HR.EMPLOYEES2;
insert into HR.EMPLOYEES2 select * from HR.EMPLOYEES2;
commit;
ALTER TABLE HR.EMPLOYEES INMEMORY;
ALTER TABLE HR.EMPLOYEES2 INMEMORY;
ALTER TABLE HR.EMPLOYEES2 INMEMORY MEMCOMPRESS FOR CAPACITY LOW;
ALTER TABLE HR.EMPLOYEES2 INMEMORY PRIORITY HIGH;
ALTER TABLE HR.EMPLOYEES2 INMEMORY
MEMCOMPRESS FOR CAPACITY HIGH
PRIORITY LOW;
SELECT OWNER,TABLE_NAME,INMEMORY,INMEMORY_PRIORITY,INMEMORY_COMPRESSION
FROM DBA_TABLES
WHERE INMEMORY = 'ENABLED'
;
SELECT OWNER, SEGMENT_NAME, INMEMORY_PRIORITY, INMEMORY_COMPRESSION
FROM V$IM_SEGMENTS;
declare
begin
for i in 1..10000 loop
insert into sh.test_inmem values (i,'A' );
end loop;
end;
/
commit;
select /*+ FULL NO_PARALLEL */ count(*) from sh.test_inmem;
select /*+ FULL(HR.EMPLOYEES) NO_PARALLEL(HR.EMPLOYEES) */ count(*) from HR.EMPLOYEES;
select /*+ FULL(HR.EMPLOYEES2) NO_PARALLEL(HR.EMPLOYEES2) */ count(*) from HR.EMPLOYEES2;
SELECT OWNER,TABLE_NAME,INMEMORY,INMEMORY_PRIORITY,INMEMORY_COMPRESSION
FROM DBA_TABLES
WHERE INMEMORY = 'ENABLED'
;
SELECT OWNER, SEGMENT_NAME, INMEMORY_PRIORITY, INMEMORY_COMPRESSION
FROM V$IM_SEGMENTS;
ALTER TABLE sh.test_inmem NO INMEMORY;
ALTER TABLE HR.EMPLOYEES NO INMEMORY;
ALTER TABLE HR.EMPLOYEES2 NO INMEMORY;
SELECT OWNER,TABLE_NAME,INMEMORY,INMEMORY_PRIORITY,INMEMORY_COMPRESSION
FROM DBA_TABLES
WHERE INMEMORY = 'ENABLED'
;
SELECT OWNER, SEGMENT_NAME, INMEMORY_PRIORITY, INMEMORY_COMPRESSION
FROM V$IM_SEGMENTS;