在查看需要花费很长时间才能执行的存储过程的列表时,最引人注目的是它。但是,大多数等待时间(81%)是ASYNC_NETWORK_IO,我知道原因:存储过程传输大约400 MB的信息。
在文档中,它指出ASYNC_NETWORK_IO的原因是客户端无法跟上大量数据的流传,这可能是事实。我不确定如何使客户端保持同步,因为它所做的只是通过ADO.NET调用存储过程,然后仅处理数据集。
因此,鉴于此信息,我是否应该担心此过程的ASYNC_NETWORK_IO等待类型?它实际上对服务器性能有影响吗?
其他信息:
- 我正在使用SQL Server 2005的Service Pack 2。
- 客户端应用程序与SQL Server位于同一盒子上(我知道,我知道...但是我对此无能为力)。
1
考虑这种等待的最佳方法是查询中没有任何东西引起等待-它正在将数据返回给客户端。您还将在Access中看到很多链接表。根据您的客户端应用程序,一种可能性是将数据分成较小的块,或者仅返回较少的数据。如果这不是一个选择,那么您可能会受到限制,只能减少操作量。
—
JNK 2014年
客户端应用程序是否使用共享内存或TCP / IP连接?客户端应用程序和SQL Server是否共享同一组处理器核心,或者您是否使用亲和力屏蔽技术将它们分开?
—
乔恩·塞格尔
这是默认的连接类型-没什么特别的-因此它使用的是共享内存。这两个应用程序使用相同的内核集-没有亲和力。
—
AngryHacker 2014年
您的存储是SAN还是本地?
—
埃里克·希金斯
@EricHiggins只是一组本地RAID硬盘驱动器。
—
AngryHacker 2014年