1つの解説
メモリ内のカラムストアは、オブジェクト(例えば、テーブル、パーティションおよびサブパーティション)圧縮された柱状の形式でメモリ内に移入することが可能になります。今までは、円柱状の形式は、メモリ内の利用されています。つまり、データベースの再起動後、インメモリ列ストアが圧縮柱状フォーマットに伝統的な行フォーマットされたデータを変換してメモリ内に配置され、複数のステップのプロセスを使用して、最初から移入されなければならないことを意味します。インメモリファストスタートは、現在、その圧縮された円柱状の形式でディスクにインメモリ列ストアに移入データのコピーを保存することで、従来よりもはるかに速い速度でインメモリ列ストアに再作成されるデータを可能にします。
IMデータは、データベースの再起動後にこのようにデータベースを開くまでの時間を短縮し、ディスクはるかに高速読み込み速度にIMオブジェクトを介してバックアップファイルを保存し、データベースに再ロードする必要があります。
インメモリファストスタートが大幅にそれはシステムの再起動後には、メモリ列ストアにデータを再移植するのにかかる時間が短縮されます。これは、企業がはるかに早く、以前よりも柱状形式のデータにアクセスするための分析クエリのパフォーマンス上の利点を活かし開始することができます。
マルチテナント環境で、すべての共有PDBファストスタートファストスタートエリアとテーブルスペース。RAC環境では、すべてのノードは、ファストスタートデータの同じコピーを共有しています。
DBMS_INMEMORY_ADMIN.FASTSTART_ENABLEでファストスタートにテーブルスペースを有効にストアドプロシージャ、スペース管理ワーカープロセス(Wnnn)SYSDBinstance_name_LOBSEG $と呼ばれる、空のSecureFilesのLOBを作成します。
注意:表スペースには、DBAを維持する必要はありません、Oracleは自動的に維持しました。
オラクルは、次のルールが自動的にファストスタートエリアを管理します:
-
オブジェクトの集団または再増殖が起こるたびに、データベースは、ファストスタートエリアにその柱状のデータを書き込みます。
-
あなたは、セグメント上のADOのポリシーを定義する場合、データベースは、ポリシー内のルールに基づいて、ファストスタートエリア内のセグメントを管理します。ADOオブジェクトがポリシーに基づいてNOメモリ内にその属性を変更することを指定する場合、例えば、次にIMカラムストアはファストスタートエリアからそのデータを削除します。
-
人口オブジェクトの属性がNOINMEMORYに変更された場合、データベースは自動的にファストスタートエリアからそのIMCUsを除去します。
-
ファストスタート表領域の領域が不足した場合、データベースは最も古いセグメントをドロップする内部アルゴリズムを使用し、ファストスタートエリアへの書き込みを続けます。スペースが残っていない場合、データベースはファストスタートエリアへの書き込みを停止します。
図1は、ファストスタートエリアを示します
1.1 IMのファストスタート条件を有効にします
-
ファストスタートエリアとして指定される表領域が存在している必要があります。
-
この表領域は、IM列ストアのデータを格納するのに十分なスペースを持っている必要があります、そしてあなたはファストスタートエリアとして指定する前に、それは他のデータを含めることはできません。Oracleは、ファストスタートはINMEMORY_SIZE設定の2倍のサイズを持つ表領域を作成することをお勧めします。
-
あなたは、管理者権限を持っている必要があります。
実験2
注意:以下のすべての操作がPDBレベルであるか、あるいは非CDBです。CDB下にしないでください。
2.1ファストスタートは、表スペースを作成します
CREATE TABLESPACE fs_tbs
DATAFILE '/u01/app/oracle/oradata/orcl/fs_tbs.dbf' SIZE 500M REUSE
AUTOEXTEND ON NEXT 500K MAXSIZE 1G;
Tablespace created.
2.2 IMのFastStartを有効にします
SQL> EXEC DBMS_INMEMORY_ADMIN.FASTSTART_ENABLE('fs_tbs');
PL/SQL procedure successfully completed.
2.3ビューのFastStart領域のサイズ
SQL> SELECT TABLESPACE_NAME, STATUS,
( (ALLOCATED_SIZE/1024) / 1024 ) AS ALLOC_MB,
( (USED_SIZE/1024) / 1024 ) AS USED_MB
FROM V$INMEMORY_FASTSTART_AREA 2 3 4
5 ;
TABLESPACE_NAME STATUS ALLOC_MB USED_MB
--------------- ----------------------- --------------------- ---------------
FS_TBS ENABLE 500 1
2.4ビューのFastStartログモード
COL SEGMENT_NAME FORMAT a20
SELECT SEGMENT_NAME, LOGGING
FROM DBA_LOBS
WHERE TABLESPACE_NAME = 'FS_TBS';
SEGMENT_NAME LOGGING
-------------------- --------------
SYSDBIMFS_LOBSEG$ NO
2.5 IMは、IMのすべてのオブジェクトを再挿入柱状ストレージを強制
SQL> SELECT /*+ FULL(s) NO_PARALLEL(s) */ COUNT(*) FROM lei.bonus s;
COUNT(*)
----------
27
SQL> SELECT /*+ FULL(s) NO_PARALLEL(s) */ COUNT(*) FROM lei.cndba s;
COUNT(*)
----------
1
2.6ファストスタート再び領域のサイズを確認するには
SQL> SELECT TABLESPACE_NAME, STATUS,
( (ALLOCATED_SIZE/1024) / 1024 ) AS ALLOC_MB,
( (USED_SIZE/1024) / 1024 ) AS USED_MB
FROM V$INMEMORY_FASTSTART_AREA 2 3 4
5 ;
TABLESPACE_NAME STATUS ALLOC_MB USED_MB
--------------- ----------------------- --------------------- ---------------
FS_TBS ENABLE 500 1.1875
詳細については、公式ドキュメントを参照してください。
http://docs.oracle.com/database/122/INMEM/managing-im-faststart-for-im-column-store.htm#INMEM-GUID-CAA790EA-0CF6-44A8- A332-3CE23EC0FE79