• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Oracle SQL DELETE文のレスポンス)

Oracle SQL DELETE文のレスポンス

このQ&Aのポイント
  • 手前のSQL文においてDELETE文のレスポンスが上がらずに難儀しています。
  • DELETE処理はバッチにて行っていますが、SELECTでは1秒程度で済んだ処理がDELETE文ではレスポンスが返ってこないという状況です。
  • DELETE文の条件はBテーブルに存在するものを削除対象外とし、AテーブルのアイテムIDとCテーブルのアイテムIDが一致し、AテーブルのCREATEDATEとCテーブルのREPYMDが3ヶ月以内のアイテムを削除対象外としています。

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

各テーブルの件数、主キー、索引の有無、SELECT文の実行計画がわからないのでなんとも言えませんが、何らかの理由でSELECTとDELETEで異なる実行計画が採用されている可能性があります。 もし、tableaに主キーがあるなら、そのデータを抽出し、IN句を使ってDELETEを実行してみてください。

axelchk
質問者

お礼

ご回答いただきまして、ありがとうございます。 自己解決ができました。 Exists中の'X'をROWIDで抽出するように変更したところ、 レスポンスが返ってくるようになりました。 速度も上々です。 主キーはアイテムNOや年月日でしたが、 インデックスは覚えていませんが、 その実行計画は異なっていたのかもしれませんね。 SELECT文とDELETE文は条件をあわせないといけないという 制約がありましたので条件を変更できずの苦労でした。 お手数おかけしました。