sql-server - on作用 - trigger nocount




在SQL服務器查詢中關閉NOCOUNT有哪些優缺點? (5)

在SQL服務器查詢中關閉NOCOUNT有哪些優缺點?


來自SQL BOL:

SET NOCOUNT ON禁止在存儲過程中為每個語句向客戶端發送DONE_IN_PROC消息。 對於包含多個不返回太多實際數據的語句的存儲過程, 將SET NOCOUNT設置為ON可以顯著提高性能 ,因為網絡流量大大降低。

有關更多詳細信息,請參閱http://msdn.microsoft.com/zh-cn/library/ms189837.aspx
另外,SQLServerCentral上的這篇文章在這個話題上很棒:
NOCOUNT的性能影響


它只是停止顯示影響發送/顯示的行的消息,這提供了性能上的好處,特別是如果有許多語句會返回消息。 它提高了性能,因為通過網絡發送的數據較少(在sql server和前端之間)。

更多在BOL: SET NOCOUNT


我總是把它設置為ON,因為上面的原因,但是如果在你的proc中有超過1個結果集,它可能會搞亂客戶端代碼


而且這不僅僅是減少了網絡流量。 SQL Server內部有一個提升,因為執行計劃可以被優化,因為減少了一個額外的查詢來確定有多少行受到影響。


停止指示由作為結果的一部分返回的Transact-SQL語句所影響的行數的消息。





nocount