TARGETとSOURCEの2つのテーブルがあります。SOURCEテーブルの行を更新し、それらの更新された行をTARGETテーブルに挿入してから、元の行をSOURCEから削除する必要があります。現在、最初にSPを介してSOURCEテーブルを完全に更新してから、別のSPで移動操作を実行しています。
BEGIN P1:
insert into TARGET(select * from SOURCE where col=someValue)
delete from SOURCE where col=someValue;
END P1
私も
insert into TARGET(SELECT * FROM OLD TABLE(DELETE FROM SOURCE WHERE col=someValue))
しかし、これはSPでは機能しませんでした。
これは一般的なシナリオ、たとえば履歴/アーカイブテーブルであり、DB2でソリューションを使用している必要があると思います。パフォーマンスに影響を与えずにこれを達成するにはどうすればよいか誰かに教えてもらえますか?つまり、SPの実行に長い時間はかからないはずです。また、冗長な更新SPを削除できますか。代わりに、更新された行をTARGETに直接挿入し、対応する行をSOURCEから削除できますか。また、削除と挿入の操作を1回のトランザクションで行うことをお勧めします。それはパフォーマンスの低下を引き起こしますか?