ヘッダーをスキップ

Oracle Rdb SQLリファレンス・マニュアル リリース7.2 E06178-01 |
| 目次 | 索引

戻る | 次へ |

デフォルトはENABLED IMMEDIATEで、これにより読取り/書込みトランザクションでは、読取り専用トランザクションがアクティブかどうかにかかわらず、変更した行のコピーがスナップショット・ファイルに書き込まれます。

ENABLED DEFERREDオプションを指定すると、読取り/書込みトランザクションにおいて（読取り専用トランザクションがアクティブでないかぎり）変更した行のコピーのスナップショット・ファイルへの書込みが回避できます。この方法でスナップショットへの書込みを遅延することにより、読取り/書込みトランザクションのパフォーマンスが向上します。ただし、アクティブな読取り/書込みトランザクションの開始より後に開始される読取り専用トランザクションは、すべてのアクティブな読取り/書込みユーザーがそれらのトランザクションを完了するまで待機する必要があります。

### SNAPSHOT EXTENT IS extent-pages PAGES

### SNAPSHOT EXTENT IS (extension-options)

各スナップショットまたは記憶域ファイル・エクステントのページ数を指定します。記憶域ファイルのデフォルトのエクステントは99ページです。

エクステントの制御が単純な場合は、ページ数を指定します。複数データベースをより厳密に制御するには、かわりにMINIMUM、MAXIMUMおよびPERCENT GROWTHのエクステント・オプションを使用します。

MINIMUM、MAXIMUM、およびPERCENT GROWTHパラメータを使用する場合は、それらを丸カッコで囲む必要があります。

### SNAPSHOT FILENAME file-spec

記憶域スナップショット・ファイル用に別のファイル仕様を指定します。SNAPSHOT FILENAME引数は、複数ファイルのデータベースとともにのみ使用できます。

複数ファイルのデータベースでは、CREATE DATABASE文が、独自のSNAPSHOT FILENAME句を含むCREATE STORAGE AREA RDB$SYSTEM句を含んでいる場合を除き、RDB$SYSTEM記憶域スナップショット・ファイルにファイル仕様が使用されます。

ファイル仕様には、.snp以外のスナップショット・ファイル仕様は指定しないでください。Oracle Rdbでは、別の拡張子を指定した場合でも、ファイル仕様に拡張子.snpが割り当てられます。

SNAPSHOT FILENAME引数を省略すると、.snpファイルのデバイス名、ディレクトリ名およびファイル名はデータベース・ルート・ファイルと同じになります。

### SNAPSHOT IS DISABLED

スナップショットへの書込みを無効に指定します。デフォルトでは、スナップショットへの書込みは有効です。SNAPSHOT IS DISABLEDオプションを指定した場合は、SNAPSHOT IS ENABLEDのいずれのオプションも指定できず、データベースをオンラインでバックアップできません。ただし、将来スナップショットを有効にすると、スナップショット・オプションの設定を続行できます。スナップショットが無効になっている間は、スナップショット・オプションの設定で競合が起こる可能性がSQLにより警告されますが、文は実行されます。

### SNAPSHOT IS ENABLED IMMEDIATE

### SNAPSHOT IS ENABLED DEFERRED

読取り/書込みトランザクションにおいて、読取り専用トランザクションで使用するスナップショット・ファイルにデータベースの変更を書き込むタイミングを指定します。

デフォルトはENABLED IMMEDIATEで、これにより読取り/書込みトランザクションでは、読取り専用トランザクションがアクティブかどうかにかかわらず、変更した行のコピーがスナップショット・ファイルに書き込まれます。

ENABLED DEFERREDオプションを指定すると、読取り/書込みトランザクションにおいて（読取り専用トランザクションがアクティブでないかぎり）変更した行のコピーのスナップショット・ファイルへの書込みが回避できます。この方法でスナップショットへの書込みを遅延することにより、読取り/書込みトランザクションのパフォーマンスが向上します。ただし、アクティブな読取り/書込みトランザクションの開始より後に開始される読取り専用トランザクションは、すべてのアクティブな読取り/書込みユーザーがそれらのトランザクションを完了するまで待機する必要があります。

### STATISTICS COLLECTION IS ENABLED

### STATISTICS COLLECTION IS DISABLED

データベースに関する統計収集を有効にするか無効にするかを指定します。データベースに関する統計を無効にした場合、データベースにアタッチされているプロセスに統計は表示されません。統計の表示には、RMU Show Statisticsコマンドを使用します。

デフォルトはSTATISTICS COLLECTION IS ENABLEDです。ALTER DATABASE文およびIMPORT文を使用すると統計を無効にできます。

RMU Show Statisticsコマンドの詳細は、『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

統計収集を有効にする場合は、論理名RDM$BIND_STATS_ENABLEを定義します。統計収集を使用する場合の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。

### storage-area-params

データベース記憶域ファイルの特性を制御するパラメータです。ほとんどの記憶域パラメータを単一ファイルのデータベースまたは複数ファイルのデータベースに指定できますが、句の影響は異なります。

- 単一ファイルのデータベースでは、記憶域パラメータによってデータベースの単一の記憶域の特性が指定されます。

- 複数ファイルのデータベースでは、記憶域パラメータに対する独自の値が指定されていない、CREATE DATABASE文で作成された記憶域に対して、一連のデフォルト値が記憶域パラメータで指定されます。デフォルト値は、RDB$SYSTEM記憶域、およびCREATE STORAGE AREAデータベース要素内で指定されたその他の記憶域に適用されます。
  CREATE DATABASE文のCREATE STORAGE AREA句は、これらのデフォルト値よりも優先されます。デフォルト値は、その後ALTER DATABASE文で作成された記憶域には適用されません。

### SYSTEM INDEX (COMPRESSION IS...)

データベースの作成者は、この句を使用して圧縮されたシステムの索引を選択できます。デフォルトはSYSTEM INDEX (COMPRESSION IS DISABLED)です。

圧縮が有効になっている場合、Oracle Rdbではランレングス圧縮を使用して、テキスト・データ型からの2つ以上の連続する空白文字、または非文字データ型からの2つ以上のバイナリ・ゼロを圧縮します。システムの索引を圧縮すると、記憶域が減少し、I/Oが改善されます。アプリケーションが頻繁にデータ定義を同時実行しないかぎり、システムの索引を圧縮してください。

SYSTEM INDEX (COMPRESSION IS...)句を指定して作成したデータベースは、EXPORT文およびIMPORT文を使用してのみ変更できます。圧縮モードを変更するためのデータベース変更はできません。

SYSTEM INDEX COMPRESSION IS句は、この句と同一で、Oracle Rdbの古いバージョンとの互換性の目的で保持されています。

### SYSTEM INDEX (PREFIX CARDINALITY COLLECTION IS ...)

データベースの作成者は、この句を使用してシステムの索引用にプリフィックスのカーディナリティ収集を調整できます。これらの句の詳細は、「CREATE INDEX文」を参照してください。デフォルトはPREFIX CARDINALITY COLLECTION IS ENABLEDです。

### SYSTEM INDEX (TYPE IS...)

データベースの作成者は、この句を使用してシステム表用にSORTED索引またはSORTED RANKED索引のいずれかを選択できます。デフォルトはSORTEDです。SORTED RANKED索引は、重複の多いシステムの索引に対するDDL操作中の領域使用率およびCPU使用率の低下において利点があります。

### SYNONYMS ARE ENABLED

CREATE SYNONYM文、ALTER...RENAME TO文およびRENAME文に使用するオプションのシステム表RDB$OBJECT_SYNONYMSを追加します。省略した場合のデフォルトでは無効になります。

### THRESHOLD IS number-buffers BUFFERS

この数値は、プリフェッチの開始前に検出される必要がある順次バッファ・アクセスの数を表します。デフォルトは4バッファです。

THRESHOLDオプションを指定する場合は、DETECTED ASYNC PREFETCH句がすでに指定されている必要があります。ASYNC PREFETCH句にTHRESHOLDオプションを指定しようとすると、エラーが表示されます。

### THRESHOLDS ARE (val1 [,val2 [,val3] ])

しきい値を（1つ、2つまたは3つ）指定します。しきい値はデータ・ページの占有率を示し、データ・ページ上で保証されている空き領域について、考えられる4つの範囲を設定します。データ・ページがあるしきい値で定義されている割合に達した場合は、新しい占有率と残りの空き領域を反映するよう、データ・ページの領域管理（SPAM）エントリが更新されます。

デフォルトのしきい値は、70、85、および95パーセントです。値を1つまたは2つのみ指定する場合は、指定されなかった値は、デフォルトで100パーセントになります。

単一ファイルのデータベースにはTHRESHOLDS記憶域パラメータは指定できず、PAGE FORMAT IS MIXEDを明示的に指定していない場合もTHRESHOLDS記憶域パラメータは指定できません。均一記憶域にしきい値を指定するには、CREATE STORAGE MAP文を使用します。

領域管理パラメータの設定の詳細は、『Oracle Rdb7 Guide to Database Maintenance』を参照してください。

### USER 'username'

データベース・システムでの権限チェックに使用されるオペレーティング・システムのユーザー名を指定する文字列リテラルです。この句では、SYSTEM_USER値式の値も設定します。

### USER LIMIT IS max-glo-buffers

各アタッチが割り当てるグローバル・バッファの最大数を指定します。グローバル・バッファ・プールはすべてのアタッチで共有されるため、1アタッチが割当て可能なグローバル・バッファの数の上限を定義する必要があります。この制限により、1ユーザーがRDM$BIND_BUFFERS論理名を定義してグローバル・バッファ・プール内のすべてのバッファを使用することを防止できます。（ローカル・バッファまたはグローバル・バッファのいずれを使用しているかによって異なるRDM$BIND_BUFFERSの動作は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。）

ユーザーごとの制限は、グローバル・バッファの総数より大きくできません。デフォルトは5バッファです。ユーザーごとの制限は、RMU Dumpコマンド出力に1ユーザー当たりの最大グローバル・バッファの数として表示されます。

プロセスがアタッチごとに割当て可能なグローバル・バッファの最大数は、NUMBER IS句で設定されるグローバル・バッファの総数を、データベースへのアクセスが保証されているアタッチの総数で割ることにより決定します。たとえば、グローバル・バッファの総数が200であり、少なくとも10アタッチに対してデータベースへのアクセスを保証する場合、1アタッチ当たりのグローバル・バッファの最大数は20に設定します。

一般的には、グローバル・バッファを使用する場合、1ユーザー当たりのグローバル・バッファの最大数は、デフォルトのデータベース・バッファの数よりも大きく設定します。VMSclusterシステムのパフォーマンスを最大化できるように、Global_Buffers修飾子を指定したRMU Openコマンドを使用してクラスタ内の各ノード上で2つのグローバル・バッファ・パラメータをチューニングします。

USER LIMIT ISパラメータはオンラインで変更できますが、その変更は次回データベースがオープンするまで反映されません。

グローバル・バッファ固有のバッファ・パラメータは、NUMBER ISパラメータおよびUSER LIMIT ISパラメータの2つのみです。そのため、これらは、プロセスごとにではなくノードごとに適用されます。

### USING 'password'

USER句で指定されているユーザー名に対するユーザーのパスワードを指定する文字列リテラルです。

### txn-modes

データベースのトランザクション・モードを指定します。

モード | 説明
--- | ---
ALL | すべてのモードが有効。
NONE | 有効なモードなし。
トランザクション・タイプ
[NO]READ ONLY | データベースに対して読取り専用トランザクションを実行可能。
[NO]READ WRITE | データベースに対して読取り/書込みトランザクションを実行可能。
[NO] BATCH UPDATE | データベースに対してバッチ更新トランザクションを実行可能。このモードの実行では、セキュリティ機能やリカバリ・ユニット・ジャーナル・ファイルは適用されず、オーバーヘッドは発生しない。バッチ更新トランザクションは、テータベースの初期ロードに使用するためのものである。Oracle Rdbでは、このモードは無効にすることを推奨。
モードの予約
[NO] SHARED [READ | WRITE] | 表を共有モード用に予約可能。つまり、他のユーザーもこれらの表を使用できる。
[NO] PROTECTED [READ | WRITE] | 表を保護モード用に予約可能。つまり、他のユーザーもこれらの表から読み取ることができる。
[NO] EXCLUSIVE [READ | WRITE] | 表を排他アクセス用に予約可能。つまり、READ ONLYトランザクションであっても他のユーザーはこれらの表にアクセスできない。
ALL | 他のユーザーでもすべての表を使用可能。
NONE | 表へのアクセスは不可。

txn-modesの詳細は、「SET TRANSACTION文」を参照してください。

### WAIT n MINUTES FOR CLOSE

データベースが自動的にクローズするまでOracle Rdbが待機する時間を指定します。この待機時間中にいずれかのユーザーがアタッチすると、データベースはクローズされません。

WAIT句が指定されない場合、nのデフォルト値はゼロ（0）です。nの値には、ゼロ（0）〜35,791,394の範囲の値が可能です。ただし、Oracle Rdbでは、大きい値は使用しないことをお薦めします。

### WORKLOAD COLLECTION IS ENABLED

### WORKLOAD COLLECTION IS DISABLED

オプティマイザがワークロード情報をシステム表RDB$WORKLOADに記録するかどうかを指定します。このシステム表は、存在しない場合でも、WORKLOAD COLLECTION IS ENABLED句により作成されます。後でワークロード収集を無効にしても、RDB$WORKLOADシステム表は削除されません。

ワークロード・プロファイルは、データベース・ワークロードにおいて問合せにより使用される目的の表参照および列参照の詳細です。ワークロード収集を有効にすると、オプティマイザによりこれらの参照が収集され、RDB$WORKLOADシステム表に記録されます。このワークロードはさらに、ワークロードに関する便利な統計を記録するRMU Analyze Statisticsコマンドにより処理されます。これらのワークロード統計は、より精密なアクセス計画を用意するためにオプティマイザにより実行時に使用されます。

デフォルトでは、ワークロード収集は無効です。

## 使用方法

> - CREATE DATABASE文は、複数のトランザクションを開始およびコミットします。ただし、CREATE DATABASE文はロールバックできません。

> - トランザクションがアクティブな場合は、CREATE DATABASE文を発行できません。可能であれば、プログラムまたは対話型セッション内で、CREATE DATABASEを最初のSQL文にしてください。

> - コンテキスト構造体とは、分散トランザクション・コンテキストを記述するデータ構造体です。すでに開始されているトランザクションではCREATE DATABASE文を実行できないため、CREATE DATABASE文には分散トランザクションのコンテキスト構造体を渡すことができません。

> - トランザクションがアクティブな状態ではCREATE DATABASE文を発行できませんが、SQLでは、トランザクションが宣言された後、CREATE DATABASEを発行できます。
>   これを実行すると、新規データベースを含むため、現在宣言されているトランザクションの有効範囲が自動的に拡張されます。SQLは、CREATE DATABASE文で別名を使用し、その別名に対するデフォルトのトランザクション・オプション（読取り/書込み、待機）を宣言します。また、現在宣言されているトランザクションにすでに含まれているデータベースに対するトランザクション・オプションを保持します。

> - RDBVMS$CREATE_DB論理名およびRDBVMS$CREATE_DB識別子を使用して、ユーザーがシステム上でデータベースを作成する機能を制限できます。RDBVMS$CREATE_DB論理名およびRDBVMS$CREATE_DB識別子の詳細は、『Oracle Rdb7 Guide to Database Design and Definition』のデータベースの保護の定義に関する章を参照してください。

> - CREATE DATABASE文は、作成者にデータベースに対するすべてのSQL権限を付与し、他のすべてのユーザーにはSQL権限を付与しないという、データベースのデフォルトのアクセス制御リスト（ACL）を作成します。

> - リソース識別子が所有するディレクトリにデータベースを作成すると、そのディレクトリのアクセス制御エントリがデータベースのルートファイルのACLに適用され、その後、RMUアクセス制御エントリが追加されます。これは、データベース・ユーザーによるOpenVMSのファイル・セキュリティのオーバーライドを回避するためです。ただし、これにより、自分が所有するとみなしているデータベースに対して、RMUアクセス権限を持たなくなる可能性があります。
>   この問題の詳細および回避策は、『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』および『Oracle Rdb7 Guide to Database Maintenance』を参照してください。

> - 最大数を超えるグローバル・バッファを要求するプロセスには、グローバル・バッファの最大数が付与されます。これにより、問題が発生していることが示されないまま、想定よりもパフォーマンスが遅くなる場合があります。

> - 次の照合順番を使用してデータベースを定義しようとすると、Oracle Rdbは算術例外エラーを返します。

>       native_2_upper_lower = cs(
>       sequence = (%X00,"#"," ","A","a","B","b","C","c","D","d","E",
>       "e","8","F","f","5"-"4","G","g","H","h","I","i","J","j","K","k",
>       "L","l","M","m","N","n","9","O","o","1","P","p","Q","q","R","r",
>       "S","s","7"-"6","T","t","3"-"2","U","u","V","v","W","w","X","x",
>       "Y","y","Z","z"),
>       modifications = (%X01-%X1F=%X00,"!"-""""=%X00,"$"-"0"=%X00,":"-"@"=
>       %X00,
>       "{"-%XFF=%X00,""="A"));

>   照合順番のmodificationsの箇所では、多すぎる文字がヌル文字に変換されています。Oracle Rdbで処理可能なヌル文字への変換は、80文字程度です。
>   これを回避するには、MULTINATIONAL2キャラクタ・セットを目的の順序でソートするように変更します。

> - 単一ファイルのデータベースに対しては、スナップショット・ファイル名を指定できません。
>   SNAPSHOT FILENAME句をCREATE STORAGE AREA句の外部に指定すると、後続のCREATE STORAGE AREA文ではデフォルト値が使用されます。したがって、この句では、単一ファイルのデータベース（記憶域が複数に分離されていないデータベース）用のスナップショット・ファイルを別途作成できません。
>   単一ファイルのデータベースを作成する場合、Oracle Rdbでは、スナップショット・ファイルのファイル仕様は格納されません。かわりに、ルート・ファイル（.rdb）のファイル仕様を使用して、スナップショット・ファイルのファイル仕様が決定されます。
>   スナップショット・ファイルを別のデバイスまたは別のディレクトリに配置する場合、複数ファイルのデータベースを作成します。
>   ただし、隠し論理名に関する検索リストを定義することにより、OpenVMSプラットフォームに対する制限を回避できます。（ただし、非指定のルート論理名は使用しないでください。非指定のルート論理名を使用して定義されたデータベース・ファイルは、バックアップはできますが、予想どおりにはリストアされません。）
>   別のデバイスまたは別のディレクトリにあるスナップショット・ファイルを使用してデータベースを作成する手順は、次のとおりです。

>   1. 隠し論理名を使用して検索リストを定義します。検索リストの1番目の項目にはルート・ファイルの場所を指定し、2番目の項目にはスナップショット・ファイルの場所を指定します。

>   2. ディレクトリ仕様の論理名を使用してデータベースを作成します。

>   3. 2番目のデバイスまたはディレクトリにスナップショット・ファイルをコピーします。

>   4. 元の場所からスナップショット・ファイルを削除します。

>   既存のデータベースでこれを行う場合は、検索リストを定義する前にRMU Closeコマンドを使用してデータベースをクローズし、元のスナップショット・ファイルを削除した後にRMU Openコマンドを使用してデータベースをオープンします。それ以外の場合は、ここに示した手順に従ってください。
>   スナップショット・ファイルおよびデータベース・ファイルを別のデバイスに配置する場合は、データベースのバックアップとリストアのプロセスを考慮することが重要です。データベースのバックアップにはRMU Backupコマンドを使用します。ファイルはその後、RMU Restoreコマンドを実行することによりリストアできます。スナップショット・ファイルは、それを常時保管するデバイスまたはディレクトリにコピーし、リストア先として使用した場所から削除します。詳細は、『Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル』を参照してください。

> - キャラクタ・セットの拡張サポートが必要で、デフォルト、各国語、または識別子キャラクタ・セットを指定する場合は、データベースの作成前に言語を設定する必要があります。言語設定の詳細は、「SET DIALECT文」を参照してください。

> - データベースのデフォルト・キャラクタ・セットでは、CHARデータ型およびVARCHARデータ型で列のキャラクタ・セットを指定します。データベースのデフォルト・キャラクタ・セットの詳細は、第2.1.3項を参照してください。

> - 各国語キャラクタ・セットでは、NCHARデータ型およびNCHAR VARYINGデータ型で列のキャラクタ・セットを指定します。各国語キャラクタ・セットの詳細は、第2.1.7項を参照してください。

> - 識別子キャラクタ・セットでは、カーソル名および表名など、オブジェクト名のキャラクタ・セットを指定します。識別子キャラクタ・セットの詳細は、第2.1.5項を参照してください。

> - Oracle Rdbでは、DEFAULT CHARACTER SET句が省略されると、言語が以前にSQL99またはMIAに設定されていた場合、データベースのデフォルト・キャラクタ・セットは、CREATE DATABASE文が起動されるセッションのデフォルト・キャラクタ・セットであるとみなされます。それ以外の場合、この句が省略されるとデータベースのデフォルト・キャラクタ・セットはDEC_MCSになります。

> - Oracle Rdbでは、NATIONAL CHARACTER SET句が省略されると、言語が以前にSQL99またはMIAに設定されていた場合、各国語キャラクタ・セットは、CREATE DATABASE文が起動されるセッションの各国語キャラクタ・セットであるとみなされます。それ以外の場合、この句が省略されると各国語キャラクタ・セットはDEC_MCSになります。

> - Oracle Rdbでは、IDENTIFIER CHARACTER SET句が省略されると、言語が以前にSQL99またはMIAに設定されていた場合、識別子キャラクタ・セットは、CREATE DATABASE文が起動されるセッションの識別子キャラクタ・セットであるとみなされます。それ以外の場合、この句が省略されると識別子キャラクタ・セットはDEC_MCSになります。

> - DISPLAY CHARACTER SET句をATTACH文、CREATE DATABASE文またはDECLARE ALIAS文で指定すると、以前に発行されたSET DISPLAY CHARACTER SET文またはSET AUTOMATIC TRANSLATION文よりも優先されます。

> - データベースのデフォルト・キャラクタ・セットがDEC_MCSではない場合、PATHNAME指定子は使用できません。これは、CDD/リポジトリではオブジェクト名にDEC_MCSのみを含める制限があるためです。SQLにより、エラー・フラグが付けられます。

> - データベースのデフォルト・キャラクタ・セット、各国語キャラクタ・セットおよび識別子キャラクタ・セットは、データベースの作成後は変更できません。

> - プログラムにおけるCREATE DATABASE文は、データベースを参照する他のデータ定義言語（DDL）文より（ソース・ファイルにおいて）優先される必要があります。

> - CREATE DATABASE文では、COMMENT ON文を指定できません。

> - デフォルト記憶域の指定時に、パフォーマンスを向上させるためにUNIFORMページ形式を指定することをお薦めします。

> - データベースのデフォルト記憶域として設定されている記憶域は削除できません。

> - データベース作成の際にトランザクション・モードをREAD ONLYに設定すると、すべてのデータベース・オブジェクトが定義できなくなります。

> - CREATE DATABASE文でアフター・イメージ・ジャーナルを有効化したり、アフター・イメージ・ジャーナル・ファイルを追加することはできません。アフター・イメージ・ジャーナルの有効化やアフター・イメージ・ジャーナル・ファイルの追加を行うにはALTER DATABASE文を使用する必要があります。

> - RDB$PROFILESシステム表を使用して、CREATE USER文、CREATE PROFILE文およびCREATE ROLE文で作成されたユーザー、ロールおよびプロファイルが記録されます。データベースが作成されると、作成者は自動的にユーザーとして追加されます。

> - GRANT文は、データベース内でユーザーまたはロールが作成される前に、オペレーティング・システムのユーザーまたはグループを参照する場合があります。この場合、Oracle Rdbは、CREATE USER文またはCREATE ROLE文のIDENTIFIED EXTERNALLY句に対応するユーザーおよびロールを自動的に作成します。

> - ノードの指定は、CREATE DATABASE文のルートのFILENAME句に対してのみ行われている可能性があります。
>   これは、次の句を使用して指定されたディレクトリまたはファイル仕様には、デバイス、ディレクトリ、ファイル名、およびファイル・タイプのみが使用可能であることを意味します。

>   - ROW CACHE IS ENABLED句、RECOVERY JOURNAL句、ADD CACHE句およびCREATE CACHE句のLOCATION句

>   - SNAPSHOT FILENAME句

>   - ADD STORAGE AREA句およびCREATE STORAGE AREA句のFILENAME句およびSNAPSHOT FILENAME句

> - Oracle Rdbでは、大容量メモリー（VLM）を使用すると、システムで空いている物理メモリーがすべて使用可能になり、物理メモリーをデータベース・ユーザーの仮想アドレス空間に動的にマップできます。VLMでは、小規模な仮想アドレス・ウィンドウを介して大量の物理メモリーにアクセスできます。VLMは物理メモリー内で定義されますが、仮想アドレス・ウィンドウは各ユーザーのプライベート仮想アドレス空間内で定義され、維持されています。VLM内のグローバル・バッファは、メモリー内に常駐または固定されており、一連のプロセスの割当て制限には直接影響しません。
>   プロセスごとの仮想アドレス・ウィンドウの数は、ALTER DATABASE...GLOBAL BUFFERSコマンドのUSER LIMIT IS値で指定されるグローバル・バッファの最大割当てセット・パラメータに基づいており、直接調整できません。
>   ALTER DATABASE...GLOBAL BUFFERSコマンドのLARGE MEMORYパラメータは、VLM内でのグローバル・バッファ作成を指定するために使用されます。

>       SQL> ALTER DATABASE FILENAME 'MYBIGDB.RDB'
>       cont> GLOBAL BUFFERS ARE ENABLED
>       cont>   (NUMBER IS 250000,
>       cont>    USER LIMIT IS 500,
>       cont>    LARGE MEMORY IS ENABLED);

>   グローバル・バッファでのVLMの使用を開始する前に、システムの空きメモリーの量を考慮する必要があります。DCLコマンドSHOW MEMORY/PHYSICALを使用して、物理メモリーの可用性および使用率を確認できます。このコマンドは、使用中のメモリーの量および空きメモリーの量に関する情報を表示します。空きメモリーは、ユーザー・アプリケーション以外にも、VLMのグローバル・バッファに使用できます。
>   データベースごとのグローバル・バッファの合計数は524,288に制限されており、最大バッファ・サイズは64ブロックです。これは、最大16GB（2,097,152アルファ・ページ）のグローバル・バッファに相当します。この制限は、将来のリリースのOracle Rdbで緩和される予定です。
>   グローバル・バッファの機能の詳細は、『Oracle Rdb7 Guide to Database Performance and Tuning』を参照してください。

> - SHARED MEMORY IS PROCESS RESIDENTまたはLARGE MEMORYを有効化または無効化するには、コマンドを実行するプロセスに、VMS$MEM_RESIDENT_USER権利識別子が付与されている必要があります。この機能を有効にした場合は、データベースをオープンするためのプロセスにもVMS$MEM_RESIDENT_USER識別子が付与される必要があります。この機能の利用時にはRMU/OPENコマンドの使用をお薦めします。

## 例

> 例1: 単一ファイルのデータベースの作成

> このコマンド・ファイルの例では、CREATE DATABASE文の内部で定義されているドメインで構成されたEMPLOYEESという1つの表を含む、単一ファイルのデータベースを作成します。EMPLOYEES表は、サンプルの人事データベースの表と同じ定義で構成されています。

> 人事データベースの複数ファイルのバージョンを作成する例は、「CREATE STORAGE AREA句」を参照してください。

>     SQL> -- By omitting a FILENAME clause, the database root file
>     SQL> -- takes the file name from the alias:
>     SQL> CREATE DATABASE ALIAS personnel
>     cont> --
>     cont> -- This CREATE DATABASE statement takes default
>     cont> -- database root file and storage area parameter values.
>     cont> --
>     cont> -- Create domains.
>     cont> -- Note that database elements do not terminate with semicolons.
>     cont> --
>     cont> CREATE DOMAIN ID_DOM CHAR(5)
>     cont> --
>     cont> CREATE DOMAIN LAST_NAME_DOM CHAR(14)
>     cont> --
>     cont> CREATE DOMAIN FIRST_NAME_DOM CHAR(10)
>     cont> --
>     cont> CREATE DOMAIN MIDDLE_INITIAL_DOM CHAR(1)
>     cont> --
>     cont> CREATE DOMAIN ADDRESS_DATA_1_DOM CHAR(25)
>     cont> --
>     cont> CREATE DOMAIN ADDRESS_DATA_2_DOM CHAR(20)
>     cont> --
>     cont> CREATE DOMAIN CITY_DOM CHAR(20)
>     cont> --
>     cont> CREATE DOMAIN STATE_DOM CHAR(2)
>     cont> --
>     cont> CREATE DOMAIN POSTAL_CODE_DOM CHAR(5)
>     cont> --
>     cont> CREATE DOMAIN SEX_DOM CHAR(1)
>     cont> --
>     cont> CREATE DOMAIN DATE_DOM DATE
>     cont> --
>     cont> CREATE DOMAIN STATUS_CODE_DOM CHAR(1)
>     cont> --
>     cont> -- Create a table:
>     cont> --
>     cont> CREATE TABLE EMPLOYEES
>     cont>    (
>     cont>    EMPLOYEE_ID      ID_DOM
>     cont>      CONSTRAINT     EMP_EMPLOYEE_ID_NOT_NULL
>     cont>      NOT NULL
>     cont>     NOT DEFERRABLE,
>     cont>    LAST_NAME        LAST_NAME_DOM,
>     cont>    FIRST_NAME       FIRST_NAME_DOM,
>     cont>    MIDDLE_INITIAL   MIDDLE_INITIAL_DOM,
>     cont>    ADDRESS_DATA_1   ADDRESS_DATA_1_DOM,
>     cont>    ADDRESS_DATA_2   ADDRESS_DATA_2_DOM,
>     cont>    CITY             CITY_DOM,
>     cont>    STATE            STATE_DOM,
>     cont>    POSTAL_CODE      POSTAL_CODE_DOM,
>     cont>    SEX              SEX_DOM,
>     cont>      CONSTRAINT     EMP_SEX_VALUES
>     cont>      CHECK          (
>     cont>                     SEX IN ('M', 'F') OR SEX IS NULL
>     cont>                     )
>     cont>     NOT DEFERRABLE,
>     cont>    BIRTHDAY         DATE_DOM,
>     cont>    STATUS_CODE      STATUS_CODE_DOM,
>     cont>      CONSTRAINT     EMP_STATUS_CODE_VALUES
>     cont>      CHECK          (
>     cont>                     STATUS_CODE IN ('0', '1', '2')
>     cont>                     OR STATUS_CODE IS NULL
>     cont>                     )
>     cont>     NOT DEFERRABLE,
>     cont>    )
>     cont> --
>     cont> -- End CREATE DATABASE by specifying a semicolon:
>     cont> ;