データベースの作成
Db2 データベースを定義するときには、表、関連付けられた索引、およびそれらが格納される表スペースについて、最終的なコレクションを指定します。
新しい 1 セットのオブジェクトとして新たにデータベースを定義するか、あるいは既存データベースを使用するかどうかを決める場合、以下の内容を考慮してください。
- データベース全体を、1 つの単位として開始したり停止したりすることができます。 データベース内のすべてのオブジェクトの状況を表示するには、そのデータベースの名前だけを 指定した 1 つのコマンドを使用できます。 したがって、関連する 1 セットの表は同一データベースに入れてください。 (それらの表の索引はどれも同じデータベースに保持されます。)
- 処理並行性とメモリー使用を改善したい場合、単一のデータベースにある表の個数を比較的少なく (最大 20 個の表) してください。 例えば、表の数が少ない場合、Db2はより短い時間で再編成を実行します。
- データベースを複数に分割して保有すると、データ定義が並行して実行可能となり、制御ブロック用のスペースが少なくて済みます。
データベースを作成するには、CREATE DATABASE ステートメントを使用します。 データベースの名前は、非修飾の ID (最大 8 文字まで) を付けます。 Db2 データベース名は、他の Db2 データベース名と同じにしてはいけません。
データベースの暗黙的な作成
CREATE TABLE ステートメントで IN 節を指定しない場合、 Db2 は暗黙的にデータベースを作成します。
データベースの名前は DSNXXXXXです。ここで、 XXXXX はシーケンスの次の 5 桁の数字です。以下に例を示します:
DSN00001, DSN00002, DSN00003, ...
ただし、CREATE TABLESACE ステートメントで IN 節を指定しない場合、表スペースはデータベース DSNDB04 に作成されます。
例
- オブジェクト (Object)
- 名前
- DATABASE
- MYDB
CREATE DATABASE MYDB
STOGROUP MYSTOGRP
BUFFERPOOL BP8K4
INDEXBP BP4;上記サンプルに記載した STOGROUP、BUFFERPOOL、および INDEXBP 文節では、デフォルト値を設定します。 これらのデフォルト値を、表スペースまたは索引スペースの定義時にオーバーライドできます。