私たちはDB2データベースを使用しています。一部のデータウェアハウス・テーブルはTRUNCATEされ、毎日リロードされます。別のプロセスが同じテーブルに対してINSERT文を実行しているときに、デッドロックの問題が発生します。瞬時に同じテーブルの切り詰めと挿入
シナリオ
テーブルに対してTRUNCATEが実行されます。 同時に、別のプロセスが同じテーブルのデータを挿入します(このプロセスはトリガーに基づいており、いつでも開始できます)。
回避策はありますか? これまで考えてきたことは、トランケートの優先順位をつけて、インサートでスルーグッとすることです。これを解く方法はありますか?どんな助けもありがとう。
私の理解では、両方のプロセスが追加のロックを必要とする他の作業を行う場合、上記の状況でデッドロックに陥ることがあります。 TRUNCATEプロセスはそれ以上のことをしていますか? –
truncateは、他のプロセスが@data_henrikにレコードを挿入しようとしている同じテーブルのレコードを切り捨てているだけです。 –
ビジネスルールが重要です - どのプロセスが優先されているか - 非常に重要で、再現可能な出力 – MichaelTiefenbacher