首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SET NOCOUNT ON:提升預存程序效能的關鍵設定

     編輯:關於SqlServer

語法與預設行為

SET NOCOUNT { ON | OFF }
-- 預設為 OFF

開啟後的效果

  • 不再向用戶端傳回「受影響的行數」訊息(如 nn rows affected)。
  • @@ROWCOUNT 函數仍正常更新。
  • 不發送每個 T-SQL 陳述式的 DONE_IN_PROC 封包,大幅減少網路流量。

效能優勢

當預存程序包含大量不回傳資料集的陳述式(INSERT、UPDATE、DELETE 等)時,開啟 SET NOCOUNT ON 可顯著降低網路負載,提升執行速度。

執行階段設定

SET NOCOUNT 在執行期(Run-time)生效,而非剖析期(Parse-time)。

最佳實務建議

CREATE PROCEDURE usp_Example
AS
BEGIN
    SET NOCOUNT ON;  -- 開頭開啟
    -- 業務邏輯...
    SET NOCOUNT OFF; -- 結束前還原(可選,視習慣)
END

雖非強制,但建議養成習慣:在預存程序開頭加入 SET NOCOUNT ON,結束前還原預設值,避免干擾呼叫端的行數判斷邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved