1.136 INMEMORY_CLAUSE_DEFAULT

INMEMORY_CLAUSE_DEFAULTを使用すると、新しい表およびマテリアライズド・ビューにインメモリー列ストア(IM列ストア)のデフォルトの句を指定できます。

ノート:

このパラメータの設定は、インメモリー外部表には影響しません。
特性 説明

パラメータ・タイプ

文字列

構文

INMEMORY_CLAUSE_DEFAULT = '[INMEMORY] [NO INMEMORY] [other-clauses]'

構文

other-clauses::=

[compression-clause] [priority-clause] [rac-clause]

構文

compression-clause::=

NO MEMCOMPRESS | MEMCOMPRESS FOR { DML | QUERY [ LOW | HIGH ] | CAPACITY [LOW | HIGH] }脚注1

構文

priority-clause::=

PRIORITY { LOW | MEDIUM | HIGH | CRITICAL | NONE }脚注1

構文

rac-clause::=

[distribute-clause] [duplicate-clause]脚注1

構文

distribute-clause::=

DISTRIBUTE [ AUTO | BY ROWID RANGE ]脚注1

構文

duplicate-clause::=

NO DUPLICATE | DUPLICATE [ ALL ]脚注1

デフォルト値

空の文字列

変更可能

ALTER SESSION、ALTER SYSTEM

PDBで変更可能

はい

基本

いいえ

Oracle RAC

すべてのインスタンスには同じ値を使用する必要がある

脚注 1 この句の詳細は、表1-2を参照してください。

INMEMORY_CLAUSE_DEFAULTパラメータを設定しないか空の文字列に設定する場合(デフォルト)、INMEMORYとして明示的に指定された表およびマテリアライズド・ビューのみがIM列ストアに移入されます。INMEMORY_CLAUSE_DEFAULTパラメータの値をNO INMEMORYに設定すると、デフォルト値に設定した場合と同じ結果になります。

INMEMORY_CLAUSE_DEFAULTパラメータを設定する場合、INMEMORYとして指定された、新規作成の任意の表またはマテリアライズド・ビューは、このパラメータから未指定の属性を継承します。これにより、構文で明示的に指定されていない特定のインメモリー・オプションがデフォルトで強制されます。たとえば、INMEMORY_CLAUSE_DEFAULTパラメータをMEMCOMPRESS FOR CAPACITY LOWに設定し、表がINMEMORY PRIORITY HIGHで作成される場合、その表はINMEMORY MEMCOMPRESS FOR CAPACITY LOW PRIORITY HIGHとして宣言されたかのように扱われます。

INMEMORYをこのパラメータの一部として指定する場合、NO INMEMORYとして明示的に指定された表とマテリアライズド・ビューを除き、新規作成された表とマテリアライズド・ビューはすべてIM列ストアに移入されます。たとえば、このパラメータをINMEMORY MEMCOMPRESS FOR CAPACITY HIGHに設定する場合、この句がSQLのCREATE TABLE文にあるかのように新しい表がすべて作成されます。指定のセグメントの表領域にINMEMORYのデフォルト値がある場合、このパラメータの値がオーバーライドされます。

表1-2 INMEMORY_CLAUSE_DEFAULTパラメータの値の意味

構文 説明

INMEMORY

新規作成された表とマテリアライズド・ビューがSQLのCREATE TABLE文またはCREATE MATERIALIZED VIEW文でNO INMEMORYとして指定される場合を除き、IM列ストアに移入されることを指定します。

NO INMEMORY

SQLのCREATE TABLE文またはCREATE MATERIALIZED VIEW文でINMEMORYとして明示的に指定された表とマテリアライズド・ビューのみがIM列ストアに移入されることを指定します。

compression-clause

インメモリー圧縮をインスタンスに使用する必要があることを指定します。MEMCOMPRESS FORの値を使用して、インメモリー圧縮レベルを指定します。

NO MEMCOMPRESS

NO MEMCOMPRESSを指定する場合、インメモリー圧縮はIM列ストアで行われません。

MEMCOMPRESS FOR

MEMCOMPRESS FORを使用して、IM列ストアのインメモリー圧縮レベルを示します。

DML

DMLを指定する場合、IM列ストアはDML操作に対して最適化され、一部の軽量インメモリー圧縮が行われます。

QUERY

QUERYを指定する場合、インメモリー圧縮レベルは高パフォーマンスを対象とします。LOWまたはHIGHを使用せずにQUERYを指定する場合、デフォルトでQUERY LOWに設定されます。

QUERY LOW

QUERY LOWを指定する場合、インメモリー圧縮レベルにより最高のパフォーマンスが得られます。

QUERY HIGH

QUERY HIGHを指定する場合、インメモリー圧縮レベルにより、パフォーマンスに重点が置かれて、圧縮とパフォーマンス間のバランスが取られます。

CAPACITY

LOWまたはHIGHを使用せずにCAPACITYを指定する場合、デフォルトでCAPACITY LOWに設定されます。

CAPACITY LOW

CAPACITY LOWを指定する場合、インメモリー圧縮レベルは、容量に重点が置かれた圧縮とパフォーマンス間のバランスになります。

CAPACITY HIGH

CAPACITY HIGHを指定する場合、インメモリー圧縮レベルは最大容量を対象とします。

priority-clause

IM列ストアに表を移入する場合に使用する優先度を指定します。PRIORITYの値を使用して優先度を指定します。

デフォルトでは、IM列ストアへの表の移入は、その表が有用かどうかをデータベースが判断するまで遅れる場合があります。

データベース・インスタンスが起動すると、表は優先度順に移入されます。

PRIORITY NONE

PRIORITY NONEを指定する場合、IM列ストアへの表の移入は、その表が有用かどうかをデータベースが判断するまで遅れる場合があります。

これは、優先度を指定しない場合のデフォルト値です。

PRIORITY LOW

PRIORITY LOWを表(または複数の表)に指定する場合、IM列ストアへのその表の移入は、優先度が指定されていない表よりも前に行われます。

PRIORITY MEDIUM

PRIORITY MEDIUMを表(または複数の表)に指定する場合、IM列ストアへのその表の移入は、優先度が指定されていない表やPRIORITY LOWが指定されている表よりも前に行われます。

PRIORITY HIGH

PRIORITY HIGHを表(または複数の表)に指定する場合、IM列ストアへのその表の移入は、優先度が指定されていない表や、PRIORITY LOWおよびPRIORITY MEDIUMが指定されている表よりも前に行われます。

PRIORITY CRITICAL

PRIORITY CRITICALを表(または複数の表)に指定する場合、IM列ストアへのその表の移入は、優先度が指定されていない表や、PRIORITY LOWPRIORITY MEDIUMおよびPRIORITY HIGHが指定されている表よりも前に行われます。

rac-clause

Oracle Real Application Clusters (Oracle RAC)インスタンス間でのIM列ストアの表の管理方法を指定します。distribute-clauseおよびduplicate-clauseを使用して、IMストアの表をOracle RACインスタンスでどのように管理するかを指定します。

Oracle RAC以外のデータベースの場合、表全体またはパーティションが1つのインスタンスに存在する必要があるため、これらの設定による影響はありません。

distribute-clause

Oracle RACインスタンス間での表の配信方法を指定します。

DISTRIBUTE AUTO

パーティション化のタイプおよびduplicate-clauseの値に基づき、IM列ストアの表のOracle RACインスタンス間での配信方法がデータベースで自動的に決定されることを指定します。

DISTRIBUTE AUTOがデフォルトであり、DISTRIBUTEをそれ自体で指定する場合も使用されます。

DISTRIBUTE BY ROWID RANGE

IM列ストアの表が行IDの範囲に基づき様々なOracle RACインスタンスに配信されることを指定します。

duplicate-clause

すべてのOracle RACインスタンス間で分散される、IM列ストアの表の各インメモリー圧縮ユニット(IMCU)のコピー数を指定します。

ノート: エンジニアド・システムでOracle Real Application Clusters (Oracle RAC)を使用している場合、duplicate-clauseのみが適用可能です。それ以外は、duplicate-clauseは無視され、メモリー内には各IMCUのコピーは1つしか存在しません。

NO DUPLICATE

Oracle RACインスタンス間でデータは複製されません。これはデフォルトです。

DUPLICATE

データは別のOracle RACインスタンスで複製されるため、合計2つのOracle RACインスタンスにデータが存在することになります。

DUPLICATE ALL

すべてのOracle RACインスタンス間でデータが複製されます。DUPLICATE ALLを指定する場合、distribute-clauseを指定したかどうか、あるいはどのように指定したかを問わず、データベースではDISTRIBUTE AUTO設定を使用します。

次の文では、表はIM列ストアに移入されません。

alter system set INMEMORY_CLAUSE_DEFAULT='NO INMEMORY'
scope=both;

次の文では、新しい表およびマテリアライズド・ビュー(NO INMEMORYとして指定されたものを除く)は、高容量圧縮レベルでIM列ストアに移入されます。

alter system set
INMEMORY_CLAUSE_DEFAULT='INMEMORY MEMCOMPRESS FOR CAPACITY HIGH'
scope=both;

次の文では、新しい表(NO INMEMORYとして指定されたものも含む)は、優先度がLOWの最高パフォーマンス圧縮レベルでIM列ストアに移入されます。

alter system set
INMEMORY_CLAUSE_DEFAULT='INMEMORY MEMCOMPRESS FOR QUERY LOW PRIORITY LOW'
scope=both;

次の文では、新しい表(NO INMEMORYとして指定されたものも含む)は、インメモリー圧縮なしでIM列ストアに移入されます。

alter system set
INMEMORY_CLAUSE_DEFAULT='INMEMORY NO MEMCOMPRESS'
scope=both;

次の文では、IM列ストアの表は、すべてのOracle RACインスタンス(非エンジニアド・システムを除く)で複製されます。非エンジニアド・システムの場合、duplicate-clause (DUPLICATE ALL)は無視され、列ストアの表は、Oracle RACインスタンス間で自動的に配信されます。IM列ストアには表の各IMCUのコピーが1つしかありません。

alter system set
INMEMORY_CLAUSE_DEFAULT='INMEMORY MEMCOMPRESS FOR QUERY
DISTRIBUTE AUTO DUPLICATE ALL'
scope=both;

次の文では、INMEMORY_CLAUSE_DEFAULTパラメータの値をデフォルト値(空の文字列)に戻します。

alter system set
INMEMORY_CLAUSE_DEFAULT=''
scope=both;

関連項目: