2016-09-06 55 views
0

我正在使用SQL Server 2008,這類問題(INSERT + UPDATE vs DELETE + INSERT)被問了一些時間,但根據我的理解,我的情況有點不同。請參閱下面的附圖。是否有可能做INSERT + UPDATE + DELETE與DELETE + INSERT?

我有一個表BOM,但後來我需要更新數量,插入新材料,並且不需要材料,所以我刪除了。

我的問題是:對於一個非常大的表(10M +行)

  1. 是有可能做INSERT + UPDATE + DELETE?
  2. 如果是,是否比使用DELETE + INSERT更好?

我搜索和提問/回答都爲1的情況下,但我需要的情況下2.

enter image description here

回答

0

這取決於表/索引結構,觸發器等

的解決方案

在某些情況下你可能會執行UPDATE語句,但實際上可以在後臺執行DELETE/INSERT操作。

在某些情況下,使用「軟刪除」會更快 - 只需將行標記爲已刪除,然後在安靜的時間(週末),您可以計劃物理刪除行,整理索引等。可以使用MERGE命令一次執行INSERT/UPDATE/DELETE,但需要測量將其與單個INSERT/DELETE/UPDATE語句進行比較的性能。在很多情況下,我更喜歡先刪除,然後更新,最後插入。

它也取決於更改的行數......有時將數據移動到新表(堆),然後在那裏創建索引並最終刪除/重命名錶更快。

+0

我現在有了更好的理解 - 非常感謝你 – user7226

相關問題