Sql-Server

ASYNC_NETWORK_IO 等待類型有什麼可擔心的嗎?

  • February 2, 2017

在查看需要很長時間執行的儲存過程列表時,其中一個會導致最多的等待。但是,大部分等待(81%)是 ASYNC_NETWORK_IO,我知道原因:儲存過程傳輸大約 400 MB 的資訊。

在文件中,它指出 ASYNC_NETWORK_IO 的原因是客戶端無法跟上數據洪流,這可能是真的。我不確定如何讓客戶端跟上,因為它所做的只是通過 ADO.NET 呼叫儲存過程,然後只處理數據集。

因此,鑑於此資訊,我是否應該擔心此過程的 ASYNC_NETWORK_IO 等待類型?它實際上對伺服器性能有影響嗎?

附加資訊:

  • 我使用的是 SQL Server 2005 的服務包 2。
  • 客戶端應用程序與 SQL Server 在同一個盒子上(我知道,我知道……但我對此無能為力)。

正如您所說,這種等待類型表明應用程序沒有跟上 SQL Server。現在這真正的意思是,SQL Server 無法通過網路盡可能快地發送數據。

可能有兩個根本原因:

  1. 該應用程序的編寫效率低下,並且處理行的速度不夠快。
  2. 網路已滿。

如果應用程序本身太慢,則不會或不會對其他查詢的性能產生重大影響。另一方面,如果管道太小,其他查詢也不能發送它們的結果而不得不等待。

然而,在後一種情況下,所有連接都在 ASYNC_NETWORK_IO 上等待。您應該能夠清楚地看到這種影響。

引用自:https://dba.stackexchange.com/questions/57402