優化海量記錄更新操作 問題:使用即使運行了多次,簡單的 UPDATE語句也失敗了 解決方案: 不要更新現有表,而是使用 SELECT 語句用所需的值填充新表。這種方法顯著提高了效能並避免了與直接更新相關的瓶頸。 非簡單情況的步驟: 建立一個具有所需的新表結構: 使用相同的聚集索引、識別列、計算列和要更新的新列在不同架構下重新建立原始表。 排除觸發器、外鍵約束和其他非必要的 測試插入操作: 將一小部分行插入新表中以確保正確性。 準備批次插入: 將資料庫設定為批次日誌或簡單復原模式。 截斷新的 執行批次插入: 使用帶有INSTABLOC 的單一INSTAERT語句提示。 驗證資料完整性: 檢查新表以確認更新成功。 重新建立限制和觸發器: 在新表中重新建立所有非聚集約束、索引和索引觸發器,同時在單獨的批次中維護架構。 切換表: 將原始表移至備份架構,將新表移至所需架構。 執行任何必要的調整操作以協調發生的任何更改更新過程中。