一時的に表更新のログを出力しないようにするには

提供: DB2逆引きWiki
移動: 案内, 検索

DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#ログ

目次

前提

  • 表の作成に必要な権限

解説

表を定義する際にNOT LOGGED INITIAILLYオプションを指定すると、表を定義したトランザクションのログは残らなくなります。

CREATE TABLE 表名 .... NOT LOGGED INITIALLY

NOT LOGGED INITIALLY
表を定義したトランザクションはログに記録されません。このオプションは表スペースの定義の後に続けて指定できます。
ログ出力の抑制は表を定義したトランザクションのみで有効ですが、その後のトランザクションでもALTER TABLEを用いることで、そのトランザクションに限りログ出力の抑制を再度有効化することができます。

ALTER TABLE 表名 ACTIVATE NOT LOGGED INITIALLY [WITH EMPTY TABLE]

WITH EMPTY TABLE
ログの出力を抑制すると共に、表内のデータをいったん全て削除します。この削除の内容はログに残りません。

使用例

NOT LOGGED INITIALLYオプションを指定して表(ここではsample)を定義する例。

db2 ==> CREATE TABLE sample .... NOT LOGGED INITIALLY↓

ALTER TABLEを用いて、再度、ログ出力を一時的に抑制する例。

db2 ==> ALTER TABLE sample ACTIVATE NOT LOGGED INITIALLY↓

WITH EMPTY TABLEオプションと共に用いて、表の内容を削除した上でログ出力を一時的に抑制する例。

db2 ==> ALTER TABLE sample ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE↓

注意

  • このオプションを指定すると、ロールフォワードでその表をリカバリーできなくなります。表は使用不可能の状態になるので、一度ドロップして再定義してください。
  • WITH EMPTY TABLEオプションを指定した場合、そのトランザクションをロールバックしても表の内容は元に戻りません。

参照

個人用ツール
名前空間

変種
操作
案内
ツール