• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:効率の良いコーディングについて)

効率的なコーディングの方法

このQ&Aのポイント
  • PLSQL初心者のため、処理待ちテーブルの重複データのマージ処理について効率的な方法を教えてください。
  • 処理待ちテーブルには入庫処理(P‐A)と出庫処理(P‐B)の更新があり、重複データが発生することがあります。
  • 処理待ちテーブルから取得したデータをループし、重複データをマージして高速な処理を実現する方法についてアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.2

(1)処理待ちテーブルを集計し、重複のあるもののみ別テーブルに吐き出す。 (2)別テーブルにあるものを処理待ちテーブルから削除する。 (3)別テーブルから処理待ちテーブルに追加する。 で、よろしいかと。

vt1-sp-ostrich
質問者

お礼

ご回答ありがとうございます。 バタバタしてたので、返事が遅くなって申し訳ありません。 なるほど、楽な方法は無いということで理解しました。 当初の予定通り地道に集計して対応することにします。

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

ひとつのSQLで2つのデータを作っているとは思えませんので、入力インターフェースで2つSQLを発行することを防ぐ仕組みを作るのが一番簡単です。そのほかの対応をするためには、2つ発行されたSQLのどちらがオペレーターが意図したものなのかを判定する仕組みを構築しなければいけません。 それをするためには、きっちりしたインデックスが無いと厳しいかな。 連番のようなインデックスだけだと、複数端末よりの処理があった場合どうなるかはよくわかんないから難しいと思う。 

vt1-sp-ostrich
質問者

お礼

ご回答ありがとうございます。 ですよねー! ですが、そこが悲しい雇われ人・・・。 根本的な解決を主張してみたものの、費用云々の面で却下されました。 ですので、申し訳ありませんが、今回の場合、 「処理待ちテーブルにおいて同一商品(IDが同じレコード)のデータをマージする。」 といった観点でアドバイス頂ければ助かります。 親切にアドバイスを頂いたにもかかわらず、勝手を言って申し訳ありませんが、 何卒、よろしくご教授の程よろしくお願い致します。

関連するQ&A