ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

行キャッシュ内の行の最大長は65535バイトです。

キャッシュの名前と既存の論理領域の名前が一致する場合、ADD CACHEでは、表の行のサイズまたは(SORTED RANKED索引またはUNIQUE SORTED索引用の)索引ノードのサイズに基づいてROW LENGTHが計算されます。このキャッシュは、論理領域キャッシュと呼ばれます。

ROW REPLACEMENT IS ENABLED

ROW REPLACEMENT IS DISABLED

キャッシュ内の行の置換をOracle Rdbによって実行するかどうかを指定します。ROW REPLACEMENT IS ENABLEDを指定すると、行キャッシュが満杯になったときに行の置換が実行されます。ROW REPLACEMENT IS DISABLEDを指定した場合、行キャッシュが満杯になっても行は置換されません。このようなタイプの行置換に関する方針は、各キャッシュに対するアプリケーションの要件によって異なります。

デフォルトはENABLEDです。

ROW SNAPSHOT IS DISABLED

キャッシュ内の行のスナップショット・コピーの格納を無効にします。

ROW SNAPSHOT IS ENABLED (CACHE SIZE IS n ROWS)

ROW SNAPSHOT IS ENABLED (CACHE SIZE IS n ROWS)オプションを使用すると、キャッシュ内の行のスナップショット・コピーの格納と、そのキャッシュに割り当てるスナップショット・スロットの数の指定が可能です。

デフォルトでは、新規のキャッシュに対しても既存のキャッシュに対しても、この機能は無効です。

ROW SNAPSHOT IS ENABLEDオプションにCACHE SIZE句を指定しない場合は、スナップショット行を1000行まで含むことができるキャッシュが作成されます。

SHARED MEMORY IS SYSTEM

SHARED MEMORY IS PROCESS

キャッシュ・グローバル・セクションをシステム領域に作成するかプロセス領域に作成するかを決定します。デフォルトはSHARED MEMORY IS PROCESSです。

プロセス領域に作成されたキャッシュ・グローバル・セクションを使用する場合は、複数のユーザーで物理メモリーを共有します。また、OpenVMS Alphaオペレーティング・システムにより、行キャッシュが各ユーザーのプライベート・アドレス空間にマップされます。この結果、すべてのユーザーは空きのある仮想アドレス範囲に制限され、それぞれがオーバーヘッドに応じた一定の割合でメモリーを使用することになります。多数のユーザーがデータベースにアクセスした場合、オーバーヘッドは大きくなります。

多数のユーザーがデータベースにアクセスする場合は、SHARED MEMORY IS SYSTEM句の使用を検討します。これを使用すると、ユーザーはメモリーのシステム領域を共有することになり、メモリーのプロセス領域に関連するオーバーヘッドは発生しないため、ユーザーはより多くの物理メモリーを使用できるようになります。

SHARED MEMORY IS PROCESS RESIDENT

SHARED MEMORY句では、データベース・ルート・グローバル・セクション(有効時のグローバル・バッファを含む)またはキャッシュ・グローバル・セクションを、システム領域に作成するかプロセス領域に作成するかを指定します。RESIDENTオプションは、グローバル・セクション・メモリーを常駐させることにより、PROCESSオプションを拡張します。

使用方法


例1: 行キャッシュの作成

次の例では、データベースを作成し、行キャッシュを作成して、その行キャッシュを記憶域に割り当てます。


SQL> CREATE DATABASE FILENAME test_db
cont> ROW CACHE IS ENABLED
cont> CREATE CACHE test1
cont>    CACHE SIZE IS 100 ROWS
cont> CREATE STORAGE AREA area1
cont>    CACHE USING test1;
SQL> SHOW CACHE
Cache Objects in database with filename test_db
        TEST1
SQL> SHOW CACHE test1

     TEST1
        Cache Size:            100 rows
        Row Length:            256 bytes
        Row Replacement:       Enabled
        Shared Memory:         Process
        Large Memory:          Disabled
        Window Count:          100
        Reserved Rows:         20
        Sweep Rows:            3000
        No Sweep Thresholds
        Allocation:            100 blocks
        Extent:                100 blocks
SQL> SHOW STORAGE AREA area1

     AREA1
         Access is:      Read write
         Page Format:    Uniform
         Page Size:      2 blocks
         Area File:      SQL_USER1:[DAY.V70]AREA1.RDA;1
         Area Allocation:          402 pages
         Area Extent Minimum:      99 pages
         Area Extent Maximum:      9999 pages
         Area Extent Percent:      20 percent
         Snapshot File:  SQL_USER1:[DAY.V70]AREA1.SNP;1
         Snapshot Allocation:      100 pages
         Snapshot Extent Minimum:  99 pages
         Snapshot Extent Maximum:  9999 pages
         Snapshot Extent Percent:  20 percent
         Extent :       Enabled
         Locking is Row Level
         Using Cache TEST1
No database objects use Storage Area AREA1

例2: 様々なキャッシュの作成および変更

  1. CUSTOMER_STATUSという名前で作成されるキャッシュでは、行の長さが577バイト、現在有効なデータベース行の格納に使用するキャッシュ・スロットの数が88000、行のスナップショット・コピーの格納に使用するスロットの数が7000に設定されています。また、このキャッシュはメモリー常駐型として構成されています。

  2. MACHINE_FLOW_IDX_1という名前で作成されるキャッシュでは、行の長さが430バイト、現在有効なデータベース行の格納に使用するキャッシュ・スロットの数が5000、行のスナップショット・コピーの格納に使用するスロットの数が12000に設定されています。このキャッシュに対しては、キャッシュ内の行の置換は無効に設定されます。

  3. SALES_CALLSという名前で作成されるキャッシュでは、行の長さが160バイト、現在有効なデータベース行の格納に使用するキャッシュ・スロットの数が3000に設定されています。行のスナップショット・コピーの格納に使用するスロットの数は、明示的に指定されていないため、デフォルトの1000に設定されます。

  4. CUSTOMER_ORDERという名前のキャッシュにはROW SNAPSHOT IS ENABLEDが指定されていません。そのため、このキャッシュには行のスナップショット・コピーは格納されません。

  5. SALESという名前のキャッシュは、キャッシュ内のスナップショット行の格納が無効になるように変更されています。

  6. CLEARINGという名前のキャッシュは、キャッシュ内のスナップショット行の格納が有効になるように変更されており、スナップショット・キャッシュのサイズが12,345行に設定されています。


SQL> ALTER DATABASE FILENAME HDB_DB
(1) ADD CACHE CUSTOMER_STATUS
                ROW LENGTH IS 577 BYTES
                CACHE SIZE IS 88000 ROWS
                ROW SNAPSHOT IS ENABLED (CACHE SIZE IS 7000 ROWS)
                SHARED MEMORY IS PROCESS RESIDENT

(2) ADD CACHE MACHINE_FLOW_IDX_1
                ROW LENGTH IS 430 BYTES
                CACHE SIZE IS 5000 ROWS
                ROW REPLACEMENT IS DISABLED
                ROW SNAPSHOT IS ENABLED (CACHE SIZE IS 12000 ROWS)

(3) ADD CACHE SALES_CALLS
                ROW LENGTH IS 160 BYTES
                CACHE SIZE IS 3000 ROWS
                ROW SNAPSHOT IS ENABLED

(4) ADD CACHE CUSTOMER_ORDER
                ROW LENGTH IS 760 BYTES
                CACHE SIZE IS 9000 ROWS
                CHECKPOINT UPDATED ROWS TO DATABASE

(5) ALTER CACHE SALES
                ROW SNAPSHOT IS DISABLED

(6) ALTER CACHE CLEARING
                ROW SNAPSHOT IS ENABLED (CACHE SIZE IS 12345 ROWS);
SQL> SHOW CACHE CUSTOMER_STATUS

     CUSTOMER_STATUS
        Cache Size:            88000 rows
        Row Length:            580 bytes
        Row Replacement:       Enabled
        Shared Memory:         Process Resident
        Large Memory:          Disabled
        Window Count:          100
        Working Set Count:     10
        Reserved Rows:         20
        Allocation:            100 blocks
        Extent:                100 blocks
        Snapshot in Cache:     Enabled
        Snapshot Cache Size:   7000 rows

SQL> SHOW CACHE MACHINE_FLOW_IDX_1

     MACHINE_FLOW_IDX_1
        Cache Size:            5000 rows
        Row Length:            432 bytes
        Row Replacement:       Disabled
        Shared Memory:         Process
        Large Memory:          Disabled
        Window Count:          100
        Working Set Count:     10
        Reserved Rows:         20
        Allocation:            100 blocks
        Extent:                100 blocks
        Snapshot in Cache:     Enabled
        Snapshot Cache Size:   12000 rows

SQL> SHOW CACHE SALES_CALLS

     SALES_CALLS
        Cache Size:            3000 rows
        Row Length:            160 bytes
        Row Replacement:       Enabled
        Shared Memory:         Process
        Large Memory:          Disabled
        Window Count:          100
        Working Set Count:     10
        Reserved Rows:         20
        Allocation:            100 blocks
        Extent:                100 blocks
        Snapshot in Cache:     Enabled
        Snapshot Cache Size:   1000 rows

SQL> SHOW CACHE CUSTOMER_ORDER

     CUSTOMER_ORDER
        Cache Size:            9000 rows
        Row Length:            760 bytes
        Row Replacement:       Enabled
        Shared Memory:         Process
        Large Memory:          Disabled
        Window Count:          100
        Working Set Count:     10
        Reserved Rows:         20
        Allocation:            100 blocks
        Extent:                100 blocks
        Row cache: checkpoint updated rows to database


CREATE CATALOG文

マルチスキーマ・データベース内のスキーマのグループの名前を作成します。

環境

CREATE CATALOG文は次の環境で使用できます。


形式





引数

"alias.name-of-catalog"

データベースにアタッチするオプションの名前を指定します。プログラムまたは対話型SQL文で複数のデータベースを参照している場合は、常にカタログ名を別名で修飾します。カタログ名とその別名はピリオドで区切り、修飾した名前は二重引用符で囲みます。

catalog-name

作成するカタログ定義の名前です。名前には、データベース内のすべてのカタログ名で一意となる有効なSQL名を使用します。カタログ名の詳細は、第2.2.3項を参照してください。

create-schema-statement

詳細は、「CREATE SCHEMA文」を参照してください。

schema-element

CREATE文またはGRANT文を1つ以上指定します。詳細は、「CREATE SCHEMA文」を参照してください。

使用方法


例1: 別名を使用したデータベースのカタログの作成

次の例では、対話型ユーザーがpersonnelというサンプル・データベースにアタッチし、そのデータベース内にカタログを作成する方法を示します。(この例では、マルチスキーマ属性を使用して作成されたサンプル・データベースpersonnelを使用する必要があります。)ユーザーは別名を使用することにより、personnelデータベースと、後で同じセッション内でアタッチする可能性がある他のデータベースを区別します。


SQL> ATTACH 'ALIAS CORPORATE FILENAME personnel -
cont> MULTISCHEMA IS ON';
SQL> --
SQL> -- SQL creates a default catalog called RDB$CATALOG in
SQL> -- each multischema database.
SQL> --
SQL> SHOW CATALOG;
Catalogs in database personnel
    "CORPORATE.RDB$CATALOG"
SQL> --
SQL> -- The SET QUOTING RULES 'SQL99' statement allows the use of
SQL> -- double quotation marks, which SQL requires when you
SQL> -- qualify a catalog name with an alias.
SQL> --
SQL> SET QUOTING RULES 'SQL99';
SQL> CREATE CATALOG "CORPORATE.MARKETING";
SQL> --
SQL> SHOW CATALOG;
Catalogs in database personnel
    "CORPORATE.MARKETING"
    "CORPORATE.RDB$CATALOG"

例2: デフォルトの別名を使用したデータベース内でのカタログの作成

次の例では、対話型のCREATE DATABASE文で使用するCREATE CATALOG句を示します。この例では、ユーザーは別名を指定せずにデータベースを作成します。ユーザーは他のデータベースにアタッチされていないため、新規に作成したデータベースがデフォルトの別名になります。


SQL> CREATE DATABASE FILENAME inventory
cont> MULTISCHEMA IS ON
cont> CREATE CATALOG PARTS
cont> CREATE SCHEMA PRINTERS AUTHORIZATION DAVIS
cont> CREATE TABLE LASER EXTERNAL NAME IS DEPT_2_LASER
cont> (SERIAL_NO INT, LOCATION CHAR)
cont> CREATE SCHEMA TERMINALS AUTHORIZATION DAVIS
cont> CREATE TABLE TERM100 EXTERNAL NAME IS DEPT_2_TERM100
cont> (SERIAL_NO INT, LOCATION CHAR);
SQL> SHOW CATALOG;
Catalogs in database with filename inventory
    PARTS
    RDB$CATALOG
SQL> show schemas;
Schemas in database with filename inventory
    PARTS.PRINTERS
    PARTS.TERMINALS
    RDB$SCHEMA


CREATE COLLATING SEQUENCE文

OpenVMS National Character Set(NCS)のユーティリティを使用して、定義されている照合順番を識別します。CREATE COLLATING SEQUENCE文を使用すると、特定のドメインで使用するデータベースのデフォルトの照合順番とは別の照合順番を指定できます。(データベースのデフォルトの照合順番は、CREATE SCHEMA文のCOLLATING SEQUENCE IS句により確立されます。データベースの定義時にこの句を省略した場合、デフォルトの順序はASCIIです。)

次のいずれかの文に照合順番の名前を入力する前に、照合順番を指定するCREATE COLLATING SEQUENCE文を入力する必要があります。


環境

CREATE COLLATING SEQUENCE文は次の環境で使用できます。


形式



引数

COMMENT IS 'string'

照合順番に関するコメントを追加します。SQLでは、対話型SQLでのSHOW COLLATING SEQUENCE文の実行時にテキストが表示されます。コメントは一重引用符(')で囲み、コメント内の複数の行はスラッシュ(/)で区切ります。

FROM library-name

デフォルト以外のNCSライブラリの名前を指定します。デフォルトのNCSライブラリはSYS$LIBRARY:NCS$LIBRARYです。

ncs-name

デフォルトのNCSライブラリであるSYS$LIBRARY:NCS$LIBRARYまたはlibrary-name引数で指定されたNCSライブラリの照合順番の名前を指定します。

照合順番は、事前定義されたNCS照合順番のいずれかまたはNCSを使用してユーザーが定義したものにできます。

sequence-name

ncs-name引数で指定された照合順番がスキーマで認識される名前を指定します。ncs-name引数およびsequence-name引数は、同じものにできます。

STORED NAME IS stored-name

マルチスキーマ・データベースに作成した照合順番へのアクセスに使用される名前を指定します。ストアド名を使用すると、Oracle Rdb管理ユーティリティであるOracle RMUなどのインタフェースを使用して、マルチスキーマ定義にアクセスできます。このユーティリティでは、1つのデータベース内で複数のスキーマを認識しません。複数のスキーマに対応しないデータベース内では、照合順番のストアド名は指定できません。

使用方法


例1: フランス語の照合順番の作成

次の例では、事前定義された照合順番FRENCHを使用して照合順番が作成されます。その後、定義された照合順番がSHOW COLLATING SEQUENCE文を使用して表示されます。


SQL> CREATE COLLATING SEQUENCE FRENCH FRENCH;
SQL> --
SQL> SHOW COLLATING SEQUENCE
User collating sequences in schema with filename SQL$DATABASE
     FRENCH

例2: 複数のコメントを指定したスペイン語の照合順番の作成


SQL> CREATE COLLATING SEQUENCE SPANISH_COL
cont> COMMENT IS 'first comment' / 'second comment'
cont> SPANISH;
SQL> SHOW COLLATING SEQUENCE SPANISH_COL;
     SPANISH_COL
 Comment:       first comment
                second comment