0

アーカイブと削除のプロセス。どれがおすすめ?

このプロセスは、以下の tx との干渉を禁止するために、このトランザクション以外の無関係なトランザクションに対してウィンドウが閉じられる 1 日の終わりに実行されます。

I.一括削除

object = read()

while ( hasNext() ) 
{
  object = next();
  call the archive_process to archive the object.
  add to delete.
}

batch_delete.

Ⅱ.単一の削除ステートメント。

object = read()

while ( hasNext() ) 
{
  object = next();
  call the archive_process to archive the object.
}

use the same sql as above, but instead delete in a single statement.

どれがおすすめ?

4

2 に答える 2

2

それはすべて、特定のニーズに依存します。

  • コードで他のタスクを実行できるようにすべてのレコードを削除する必要がある場合は、各ループで一度に 1 行ずつ削除する必要があります。
  • レコードが削除されるかどうかに関係なく、コードがタスクを実行できる場合は、最後に (単一のバッチで) すべてを削除する方がよいでしょう。

deleteeveryはデータに対するアクションをトリガーし、プログラムのディスクの読み取り/書き込み速度に影響を与える可能性があることを覚えておく必要があります。単一のバッチ削除は、多くの単一行の削除操作と比較して、コードの速度にプラスの影響を与える可能性があります。

于 2013-05-10T17:17:48.907 に答える
0

他の回答に加えて、DELETE コマンドをサポートするのに十分な UNDO があることも確認してください。また、ボリュームが大きくなると、DELETE が遅くなりすぎる可能性があります。代替手段が存在するかどうかを確認してください。多くのインデックスの影響にも注意してください。

于 2013-05-10T18:07:55.490 に答える