一時的に表更新のログを出力しないようにするには
提供:DB2逆引きWiki
【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#ログ】
目次 |
前提
- 表の作成に必要な権限
解説
表を定義する際にNOT LOGGED INITIAILLYオプションを指定すると、表を定義したトランザクションのログは残らなくなります。
CREATE TABLE 表名 .... NOT LOGGED INITIALLY
- NOT LOGGED INITIALLY
- 表を定義したトランザクションはログに記録されません。このオプションは表スペースの定義の後に続けて指定できます。
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オプションを指定した場合、そのトランザクションをロールバックしても表の内容は元に戻りません。