CREATE INMEMORY JOIN GROUP

目的

CREATE INMEMORY JOIN GROUP文を使用すると、同じ表または異なる表から頻繁に結合される列を指定するオブジェクトである結合グループを作成できます。通常、このような列には、類似する範囲内の互換性のあるデータ型の値が含まれています。結合グループを作成する際、列固有のメタデータがグローバル・ディクショナリに格納されるため、列の結合問合せが最適化されます。最適化を実現するためには、表の列をインメモリー列ストア(IM列ストア)に移入する必要があります。

表に結合グループを作成すると、現在メモリー内にあるこれらの表の内容は無効になります。これ以降に再移入すると、表のインメモリー圧縮単位(IMCU)がグローバル・ディクショナリを使用して再エンコードされます。このため、最初に結合グループを作成し、その後、表に移入することをお薦めします。

関連項目:

前提条件

別のユーザーのスキーマに結合グループを作成したり、結合グループに別のユーザーのスキーマ内の表の列を含めるには、CREATE ANY TABLEシステム権限が必要です。

構文

create_inmemory_join_group::=

セマンティクス

schema

結合グループを含むスキーマを指定します。schemaを指定しない場合、自分のスキーマ内に結合グループが作成されます。

join_group

作成する結合グループの名前を指定します。名前は、「データベース・オブジェクトのネーミング規則」に指定されている要件を満たしている必要があります。

schema

結合グループに含まれる列を含む表のスキーマを指定します。schemaを指定しない場合、表は自分のスキーマ内に存在すると想定されます。

table

結合グループに含める列を含む表の名前を指定します。

column

結合グループに含める列の名前を指定します。結合グループには、同じ表または異なる表の列を含めることができます。

結合グループの制限事項

結合グループには、次の制限事項が適用されます。

  • 結合グループには、1つ以上の列が含まれている必要があります。

  • 結合グループには、最大で255列を含めることができます。

  • 表の列は、最大で1つの結合グループのメンバーにすることができます。

  • Oracle Active Data Guardでは、結合グループはサポートされていません。

次の文は、prod_id1という名前の結合グループをoeスキーマ内に作成します。この結合グループに関連する表は、どちらもoeスキーマ内に格納されます。

CREATE INMEMORY JOIN GROUP prod_id1
  (inventories(product_id), order_items(product_id));

次の文は、prod_id2という名前の結合グループをoeスキーマ内に作成します。表inventoriesoeスキーマ内に格納され、表online_mediapm内に格納されます。

CREATE INMEMORY JOIN GROUP prod_id2
  (inventories(product_id), pm.online_media(product_id));