ASYNC_NETWORK_IO網路等待和最佳化過程

宅慕思_發表於2019-10-11

測試反應測試資料庫整體出現hang的情況,檢查對應的等待事件,發現大量的resource_semaphore等待事件,

檢視記憶體佔用情況:

SELECT  *  FROM    sys.dm_exec_query_memory_grants 

發現會話189佔用大量的granted_memory, 檢查189對應的session,執行了超過24小時未結束,但是reads僅僅是77286,狀態為suspended,說明有等待,檢查等待事件ASYNC_NETWORK_IO,並且結果集大小是207466行。



以上分析說明應用程式呼叫該sql使用了RBAR (Row-By-Agonizing-Row)方式一行一行呼叫,每次呼叫都經過network roundtrip,和開發溝通,修改應用程式為批次接收結果集。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950462/viewspace-2659513/,如需轉載,請註明出處,否則將追究法律責任。

相關文章