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