我遇到類似的例子是我在遠端使用Profiler,在SQLServer等候也會看到大量的Network I/O,印象中那時點進去看OLEDB的比例最高,是有點不一樣的
接著進入查詢統計資料紀錄,選依持續時間排名,如下圖,發現有兩個QUERY有問題
反正已經發現奇怪的Query了,接著我去看SQL Server® 2012 Performance Dashboard Reports,Current Waiting Request有兩個Network I/O等待,如下圖,通常看不到代表是好的狀態
點進去一看一樣是剛剛那兩個奇怪的QUERY,如下圖
那兩個奇怪的QUERY一看內容很正常啊,一個有Where,一個沒有Where,對不同的資料庫下的查詢,Table筆數才數萬筆而已,沒有很多,相同的地方Client端是同一款應用程式,問題為何會出現ASYNC_NETWORK_IO,通常是前端應用程式無法快速的處理來自後端的送來的資料,通常程式是那種一次只處理一筆,這筆處理完再處理下一筆的這種,如果應用程式效能不夠好就容易出現這種問題囉,解決方法就是限制回傳的資料筆數,可用TOP(n)來限制最簡單,通常應用程式如果無法用分頁處理,一頁要顯示數萬筆資料其實沒什好處的
不過目前這兩個QUERY就卡在那邊,我猜想應該是USER等不下去直接關掉應用程式,結果QUERY就還留著,直接先kill掉就OK囉
我的情況跟你很像,每天有許多ASYNC_NETWORK_IO Processes,不過當User關機以後就全部不見了,不用主動把它Kill掉...=口="
回覆刪除我們的User都不關機的...
刪除因為回家後還要能VPN回自己電腦...