1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redbook : IBM i 7.6 Features and Function を読む Chapter.5-⑥ FINALテーブル5 続DELETEとサマリー

Posted at

FINALテーブルサポート4 UPDATE/DELETE並列処理からの続きです。

OLD TABLEを使用したパラレル削除の例

この例では、レコードを削除するときに FROM OLD TABLE を使用する方法を示します。
例 5-14 は、2020 年より古いすべてのレコードを削除する DELETE toystore.sales のサンプル クエリで FROM OLD TABLE を使用する方法を示しています。

掲載サンプルはこちら

-- Switch to Parallelism on QAQQINI options
call qsys2.override_qaqqini(1);
call qsys2.override_qaqqini(2, 'PARALLEL_DEGREE', '*OPTIMIZE');
--
-- DELETE with parallelism Example
-- benefit this when a Large table deletes needs to happen (say 5 Mil+ records)
SELECT COUNT(*)
FROM OLD TABLE
(DELETE FROM toystore.sales WHERE year(sales_date) < 2020);
stop;
call qsys2.override_qaqqini(3);

手順を確認すると、

  1. ジョブ用のQTEMP.QAQQINIテーブルを作成
  2. SQLのパラレル処理 PARALLEL_DEGREE を *OPTIMISE に変更してパラレル処理をオンに設定
  3. OLD TABLEで古い日付のレコードを一括削除し、かつ削除したレコード件数を取得
  4. ジョブ用のQTEMP.QAQQINIテーブルを削除

となります。

実行例はこちらです。
image.png

※上記スクショはstep.10のstop時点です。この時点ではQTEP.QAQQINIは存在しています。この後処理を継続すると11行目でQTEMP.QAQQINIテーブルが削除されます。

FINALテーブルのサマリー

・FINALテーブルの機能強化により、生成IDなどのよく使用される値を取得したり、後続の処理のために値を返すためのステートメントを追加する必要がなくなります。
・標準のINSERT、UPDATE、およびDELETEステートメント内でFINAL、NEW、およびOLD TABLEを使用して、さらにカスタマイズされた追加列を使用して、コマンドの前後の行の状態に直接アクセスできます。これにより、コードが合理化され、保守性が向上し、トレーサビリティが強化され、ネイティブDb2 for i SQL内で監査要件をサポートできます。
・これらのテーブル参照はデータ変更操作に本質的に結び付けられているため、追加の読み取り、書き込み、および中間ストレージの必要性が軽減され、I/O要件が低減され、システム全体の効率が向上します。
・最も重要なのは、監査関連データが同じアトミックトランザクション※の一部として取得されるため、コンプライアンスと運用監査の両方を満たす、信頼性が高く検証可能な監査証跡が提供されることです。これにより、コードが合理化され、リソース使用量が最小限に抑えられ、トレーサビリティが向上し、ネイティブのDb2 for i SQLに堅牢な組み込み監査機能が提供されます。

※アトミックトランザクション=原子レベル(で結合された=分離不能な)トランザクション、とは、1つのSQLで2つの処理を同時実行させるのでSQLを2回実行、の場合のように厳密には別時点でのデータとはならず、必ず同一時点でのデータを取得できる、という意味です。

FINALテーブルの章は以上で終了です。
賢くなったと思います^^

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?