私は次のようなアプリケーションを持っています:
delete from tableA where columnA='somevalue' and rownum<1000
次のようなサイクルで:
while(deletedRows>0) {
begin tran
deletedRows = session ... "delete from tableA where columnA='somevalue'
and rownum<1000"....
commit tran
}
数回実行され(各削除には20秒近くかかります)、長時間ハングした後はなぜですか?修正することは可能ですか?ありがとう。
削除が単一のSQLステートメントとしてではなくループで実行される理由は、ロールバックスペースが不足しているためです。詳細については、この質問を参照してください。