您好,登錄后才能下訂單哦!
ASYNC_NETWORK_IO 或 NETWORK_IO
翻譯自:https://mssqlwiki.com/sqlwiki/sql-performance/async_network_io-or-network_io/
什么是 ASYNC_NETWORK_IO 或 NETWORK_IO ?
當查詢執行時,SQL Server處理結果,并將它放到輸出緩存,發送給客戶端或應用程序。
客戶端或應用程序然后從輸出緩存獲取結果,處理數據,并發送確認信息給SQL Server。如果客戶端或應用程序花了很長時間發送確認信息,那么SQL Server在處理額外結果之前等待 ASYNC_NETWORK_IO(SQL Server 2005/2008) 或 NETWORK_IO(SQL Server 2000)。
這個等待類型的影響:
1.SQL Server將不會釋放被查詢持有的鎖,除非客戶端收到確認信息。這可能導致阻塞。
2.查詢持續時間增加,因此查詢會很慢。
如何排除 ASYNC_NETWORK_IO 或 NETWORK_IO 等待類型故障?
限制結果集:限制從SQL Server獲取的行數。很多應用程序設計者從整個表不使用Where從句過濾而獲取數據,并在客戶端過濾。這是非常錯誤的方式,應該在服務端過濾。
如果需要從服務器獲取大量的行,并且如果其他會話由于ASYNC_NETWORK_IO 或 NETWORK_IO正在阻塞,那么插入所有行到臨時表,然后從臨時表查詢。
檢查客戶端應用程序的性能:檢查是否客戶端或應用程序系統正經歷著系統資源瓶頸。如果有系統資源瓶頸,應用程序將不能更快處理結果集。
網絡:檢查SQL Server和客戶端或應用程序系統之間的網絡速度。如果網絡很慢,應用程序不能更快獲取結果。
NOLOCK提示或快照隔離級別:檢查是否你可以使用NOLOCK提示或快照隔離級別。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。