【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#バッファプールと表スペース】
前提
- データベース接続が必要
- 以下のいずれかが必要: SYSADM権限, SYSCTRL権限
解説
表スペースを作成するには、CREATE TABLESPACEを用います。
CREATE [ 種別 ] TABLESPACE 表スペース名
[PAGESIZE ページサイズ ]
MANAGED BY 管理方法
USING ( コンテナー指定 )
[EXTENTSIZE エクステントサイズ ]
[PREFETCHSIZE プリフェッチサイズ ]
[BUFFERPOOL バッファプール名 ]
種別
: 表スペースの種別を表す以下のキーワードのいずれかを指定します。
REGULAR
: 通常の表スペースです。一時表を除くすべてのデータを保管できます。何も指定しない場合のデフォルトです。
LARGE
: LONGおよびLOBデータを保管するための表スペースです。表スペースはDMS表スペースでないといけません。
SYSTEM TEMPORARY
: ソートや結合などに用いられるシステム一時領域のための表スペースです。データベースには常にこの種類の表スペースが少なくともひとつ必要です。
USER TEMPORARY
: 一時表を格納するための表スペースです。一時表を定義する場合、この種類の表スペースが少なくともひとつ必要です。
表スペース名
: 作成する表スペース名を指定します。
ページサイズ
: ページのサイズを指定します。ページサイズとして有効な値は4K、8K、16K、32Kのいずれかです。デフォルトは4Kです。
管理方法
: SMS/DMS表スペースのいずれとして作成するのかを指定します。
DATABASE
: DMS表スペースとして作成します
SYSTEM
: SMS表スペースとして作成します
コンテナー指定
: コンテナーとして以下のいずれかを指定します。カンマで区切り、複数のコンテナーを指定できます。
'ディレクトリパス'
: コンテナーとしてディレクトリを指定します。パスは絶対指定でも相対指定でも構いませんが、相対指定の場合はデータベースディレクトリからの相対指定になります。SMS表スペースでのみ使用可能です。
FILE 'ファイルパス' ページ数
: コンテナーとしてファイルを指定します。パスは絶対指定でも相対指定でも構いませんが、相対指定の場合はデータベースディレクトリからの相対指定になります。DMS表スペースでのみ使用可能です。
DEVICE 'デバイスパス' ページ数
: コンテナーとしてローデバイスを指定します。パスはデバイスファイルのパスになります。DMS表スペースでのみ使用可能です。
エクステントサイズ
: エクステントサイズをページ数で指定します。
プリフェッチサイズ
: プリフェッチサイズをページ数で指定します。
バッファプール名
: この表スペースで使用するバッファプールの名前を指定します。デフォルトはIBMDEFAULTBPになります。
使用例
ローデバイスのコンテナー(ここでは/dev/rdsk00と/dev/rdsk01のふたつ)を指定して通常の表スペース(ここではuserdms00)を作成する例。
db2 ==> CREATE TABLESPACE userdms00 MANAGED BY DATABASE USING ( DEVICE '/dev/rdsk00' 10240, DEVICE '/dev/rdsk01' 10240)↓
ディレクトリのコンテナー(ここでは/ts/tmp00、/ts/tmp01、/ts/tmp02のみっつ)を指定してユーザー用の一時表スペース(ここではuser00)を作成する例。
db2 ==> CREATE USER TEMPORARY TABLESPACE usertmp00 MANAGED BY SYSTEM USING ( '/ts/tmp00', 'ts/tmp01', 'ts/tmp02' )↓
エクステントサイズ(ここでは32)およびバッファプール(ここではuserbp00)を指定して、LONGデータ用表スペース(ここではuserlong00)を作成する例。
db2 ==> CREATE LONG TABLESPACE userlong00 MANAGED BY DATABASE USING ( ....省略.... ) EXTENTSIZE 32 BUFFERPOOL userbp00↓
注意
- バッファプールのページサイズと表スペースのページサイズは同じである必要があります。
- バッファプールのブロックサイズと表スペースのエクステントサイズは同じ値になるようにしてください。
- コンテナーとして使用するローデバイスは予め作成しておく必要があります。
- コンテナーとして使用するディレクトリは予め作成しておいても構いませんが、空であることを確認しておいてください。