SQL Server:多個 INSERT 語句與具有多個值的單一 INSERT – 效能悖論
問題: 基準測試令人驚訝地表明,執行 1000 個單獨的 INSERT
語句比執行具有 1000 個 INSERT
子句的單一 VALUES
語句更快。
原因: SQL Server 的查詢處理涉及解析後的關鍵「綁定」或「代數化」階段。此階段偵測並處理 INSERT
語句中的重複值,建構最佳化的執行計畫。 此階段所需的時間隨著獨特值的數量急劇增加。
績效影響者:
INSERT
語句有益,但自動參數化可能會成為大量值的瓶頸,從而影響效能。 執行計畫分析:
INSERT
的單一 VALUES
顯示超過 250 個 VALUES
子句時編譯時間急劇增加,顯示轉向效率較低的非參數化計畫。 實際意義:
INSERT
操作,使用多個單獨的 INSERT
語句可能會更快。 INSERT
操作,具有多個 INSERT
的單一 VALUES
可能仍然更有效。 進一步考慮:
INSERT
語句中使用使用者定義函數 (UDF) 會對效能產生負面影響。 以上是在 SQL Server 中,何時使用多個 INSERT 語句比使用多個值的單一 INSERT 更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!