以下の内容はhttps://htn20190109.hatenablog.com/entry/2025/02/02/093205より取得しました。


{15 その他}表に対しインメモリー列ストアを有効化

 

https://docs.oracle.com/cd/F19136_01/inmem/populating-objects-in-memory.html#GUID-C5D0A470-C06A-4EE2-AA1A-B221FFEB663B

・オンデマンド移入
デフォルトでは、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;

 

 

 

 

 




以上の内容はhttps://htn20190109.hatenablog.com/entry/2025/02/02/093205より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14