0

主キー列の値が変更された場合、列を更新するのではなく、行を削除してから新しい値を挿入する必要があるという噂を聞いたことがあります。

主キーが更新され、削除/挿入されていない場合、パフォーマンスへの影響はありますか?

4

3 に答える 3

5

主キーを更新する場合:

  • サポート インデックスが更新されます。
  • 外部キーの場合は、子がチェックされます。

ただし、削除と挿入を行うと、削除の場合は両方のポイントが実行され、挿入の場合はインデックスが更新されます。したがって、削除と挿入を行うメリットはありません。または、私が知っていることはありません。

要するに、1 回の操作ではなく 2 回の操作を行う方が悪いということです。削除が最も難しい操作であることは別として。

于 2013-09-23T11:39:54.837 に答える
1

子テーブルの FK にインデックスがない場合は、パフォーマンスと同時実行に最大の影響があります。このような場合、Oracle には、子テーブル全体をロックし、それをスキャンして参照整合性を検証する以外に選択肢はありません。

おそらく、これは主キーの UPDATE と DELETE/INSERT と混同された可能性があります。たぶん、オラクルはサポートしていますが、サポートしてCASCADE ON DELETEいないためUPDATEです。

更新が必要な場合は、削除と挿入を使用しないでください。

于 2013-09-23T12:26:34.497 に答える