–
表スペースをファイル・システムの容量まで、または表スペースの最大サイズ まで増大できるよ うにすることを指定します。自動サイズ変更を解除する方法
ALTER TABLESPACEステートメント
z AUTORESIZE NOを指定する
注意点
z 一旦AUTORESIZEをNOにすると、それまでに設定していたINCREASESIZE, MAXSIZEの値は保持されない。
z 自動サイズ拡張が実行されている最中に、自動サイズ拡張を解除しようと すると、実行中の自動サイズ拡張が完了するまでALTER TABLESPACEス テートメントは待ち状態になる。
¾ 実行中の自動サイズ拡張が完了した後、AUTORESIZEがNOに変更される。
ALTER TABLESPACE tablespace-name AUTORESIZE NO
ダイレクトI/O
利点
z ファイル・キャッシュとバッファープールでの二重バッファリングを回避
¾ 二重バッファリングを行うCPU負荷を軽減
¾ ファイル・キャッシュに余分なデータをのせないことによる、本来のファイル・データ のヒット率向上
¾ 大量にファイル・キャッシュを使用することによって引き起こされるページングを回避
(システム全体の性能が不安定になることを回避)
V8.1FixPak4以降、ダイレクトI/Oサポートが拡張されている
解説
コンテナーにファイルを使ったDMS表スペースやSMS表スペースの場合、表や索引のデータはOSが提供す るファイル・システムのファイルに格納されます。DB2 for AIXの場合、デフォルトではそれらファイルのアクセ スはmmap I/O(Memory Mapped I/O)と呼ばれる方式を使います。mmap I/Oを使用すると、アクセスする ファイルはデータベースの共有メモリー(セグメント14)にマップされ、ファイルをアクセスするDB2の各プロセ スはこのセグメントをアクセスすることでファイルの入出力を行います。また、DB2_MMAP_READ、
DB2_MMAP_WRITEをともにOFFに設定すると、DB2は表スペースのファイルアクセスのためにmmap I/Oを使 わず、JFSのキャッシュにファイルページをコピーして読み書きを行います。この場合、ディスク上のデータを DB2エージェントがアクセスできるまでに、ファイルシステム・キャッシュとDB2のバッファー・プールの二重の バッファーを使っていることになります。
mmap I/Oを使う場合もそうでない場合にも、SMSやDMS(ファイル)の表スペースを使っている限りは直接 I/Oを行うことはできず、ファイル・システムのためのオーバーヘッドは避けられませんでした。そのため、ハ イパフォーマンスが要求されるシステムでは、DMSのローデバイス構成が広く使用されてきました。
Windowsプラットフォームについては、DB2NTNOCACHEレジストリー変数の設定によってダイレクトI/Oが使 用可能でした。 その他のプラットフォームに関しても、V8.1のFixPak4以降、DMSのローデバイスを使わなくと もダイレクトI/Oが使用できるような機能強化を続けてきました。
ダイレクトI/Oの使用により、ファイルシステムを使うことによるオーバーヘッドを削減することができ、CPUコ ストの低下が期待できます。
また、ダイレクトI/Oを使用することで、ファイルキャッシュに余分なデータが乗らないことになり、本来ファイ ルキャッシュを十分に活用すべきファイルデータについてキャッシュヒット率の向上が期待できます。
ダイレクトI/Oを使用しない場合のデメリットとして、ファイル・キャッシュを大量に消費し、その結果引き起こさ
れるページングによってシステム全体の性能が不安定になることが挙げられます。ダイレクトI/Oを使用する
と、この問題を回避することができます。
ダイレクトI/Oサポートの変遷
V8.1.4 (FixPak4)
z AIXプラットフォームにおけるサポート追加
z SMS表スペースのみ (LARGE表スペース、一時表スペースは除く)
z レジストリ変数DB2_DIRECT_IOにて設定
¾ db2set DB2_DIRECT_IO=ON
z AIXのレベルによっては、コンカレント I/Oを使用
¾ AIX 5.2(ML01)以降でAPAR IY45707の適用された環境
V8.2 (FixPak7)
z AIXに加え、Solaris、HP-UX、 Linuxのサポート追加
z DMS表スペース(ファイル)のサポート追加
z 一時表スペースは対象外
z CREATE/ALTER TABLESPACEのオプションにて設定
¾ 表スペース単位の設定が可能
¾ 指定するオプション
– FILE SYSTEM CACHING :FSキャッシング使用(省略時値)
– NO FILE SYSTEM CACHING :ダイレクトI/O使用
解説
V8.1.4、すなわちFixPak4によって、AIX環境のSMS表スペースに対してダイレクトI/Oを使用でき るようになりました。
ただし、LOBやLONGデータ、一時表スペースは対象外です。
DB2はJFS2のダイレクトI/Oの機能を使いますが、AIX5.2(ML01)以降ではコンカレント I/Oとい う機能を使ってファイルアクセスを行います。(APAR IY45707適用のこと)
ダイレクトI/Oを行うためには、新しいレジストリー変数 DB2_DIRECT_IOをONに設定してください。
これによりSMS表スペースのI/OをダイレクトI/Oで、またAIX5.2(ML01)以降の環境では、コンカ レントI/Oにて処理します。
なお、DB2_DIRECT_IOがONに設定されていて、かつDB2_MMAP_READやDB2_MMAP_WRITEも ONに設定されている場合、MMAP I/Oの方の設定が自動的にOFFにされます。
V8.2、すなわちFixPak7では、AIXに加え、Solaris、HP-UX、 Linuxのサポートが追加になりました。
V8.1.4ではSMS表スペースのみを対象としていましたが、V8.2では、DMS表スペース(ファイル)
のサポートが追加になっています。
一時表スペースは依然対象外です。
また、ダイレクトI/O (およびコンカレントI/O)使用の設定は、表スペースレベルで可能になりま した。
CREATE TABLESPACEステートメント、およびALTER TABLESPACEステートメントに、FILE
SYSTEM CACHING (ファイルシステムのキャッシングを使用する)、およびNO FILE SYSTEM
参考:
ダイレクトI/O設定方法の例
表スペースのキャッシング使用状態確認は、 表スペース のスナップショットにて確認可能
get snapshot for tablespaces on sample
Tablespace name = TS1 Tablespace ID = 3
Tablespace Type = System managed space Tablespace Content Type = Any data
Tablespace Page size (bytes) = 4096 Tablespace Extent size (pages) = 32 Automatic Prefetch size enabled = Yes Buffer pool ID currently in use = 1 Buffer pool ID next startup = 1 File system caching = Yes
Tablespace State = 0x'00000000' CREATE TABLESPACE TS1 MANAGED BY SYSTEM
USING (‘tspath1’,’tspath2’)
NO FILE SYSTEM CACHING
ドキュメント内
データベース物理設計【DB2 9.5 対応版】
(ページ 122-129)