您好,登錄后才能下訂單哦!
SQLServer中怎么利用SETNOCOUNT優化存儲,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
SQLServer中怎樣設置SETNOCOUNT來優化存儲
MSDN中幫助如下:
SETNOCOUNT使返回的結果中不包含有關受Transact-SQL語句影響的行數的信息。
語法:SETNOCOUNT{ON|OFF}
注釋:
當SETNOCOUNT為ON時,不返回計數(表示受Transact-SQL語句影響的行數)。當SETNOCOUNT為OFF時,返回計數。
即使當SETNOCOUNT為ON時,也更新@@ROWCOUNT函數。
當SETNOCOUNT為ON時,將不給客戶端發送存儲過程中的每個語句的DONE_IN_PROC信息。當使用MicrosoftSQLServer提供的實用工具執行查詢時,在Transact-SQL語句(如SELECT、INSERT、UPDATE和DELETE)結束時將不會在查詢結果中顯示"nnrowsaffected"。
假如存儲過程中包含的一些語句并不返回許多實際的數據,則該設置由于大量減少了網絡流量,因此可顯著提高性能。
SETNOCOUNT設置是在執行或運行時設置,而不是在分析時設置。
權限:SETNOCOUNT權限默認授予所有用戶。
結論:我們應該在存儲過程的頭部加上SETNOCOUNTON這樣的話,在退出存儲過程的時候加上SETNOCOUNTOFF這樣的話,以達到優化存儲過程的目的。
SQLServer中怎樣設置SETNOCOUNT來優化存儲
說明:
1:在查看SQLServer幫助的時候,要注意“權限”這一節,因為某些語句是需要一定的權限的,而我們往往忽略。
2:@@ROWCOUNT是返回受上一語句影響的行數,包括找到記錄的數目、刪除的行數、更新的記錄數等,不要認為只是返回查找的記錄數目,而且@@ROWCOUNT要緊跟需要判斷語句,否則@@ROWCOUNT將返回0。
3:假如使用表變量,在條件表達式中要使用別名來替代表名,否則系統會報錯。
4:在CUD類的操作中一定要有事務處理。
5:使用錯誤處理程序,用來檢查@@ERROR系統函數的T-SQL語句(IF)實際上在進程中清除了@@ERROR值,無法再捕獲除零之外的任何值,必須使用SET或SELECT立即捕獲錯誤代碼。
關于SQLServer中怎么利用SETNOCOUNT優化存儲問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。