需要 ASYNC_NETWORK_IO 方面的帮助

Ton*_*ony 5 performance sql-server-2005 waits

我们有一台 SQL Server 2005 服务器,它为 20 个网站提供服务,其中一个是我们的自定义 CMS,还有一些其他微型网站。我是新手,刚开始在这里查看数据库。

问题是我们遇到了 SQL Server 在几天后变慢的问题,这导致我们重新启动服务。我用 SQL Profiler 做了一些统计,但经过审查后,我没有看到任何突出的东西。这就是我现在在这里的原因。我在网上环顾四周,发现了 ASYNC_NETWORK_IO。所以,我现在正在尝试遵循这条轨道。

这就是我所做的:

我清除了等待统计表。

DBCC SQLPERF ('sys.dm_os_wait_stats', 'CLEAR')
Run Code Online (Sandbox Code Playgroud)

最后 15 分钟的结果:

ASYNC_NETWORK_IO    46798     34953     812     1953
CMEMTHREAD          28300     42328     1187    6437
CXPACKET            361571    7048515   38984   48859
Run Code Online (Sandbox Code Playgroud)

从我所读到的 ASYNC_NETWORK_IO 与等待客户端应用程序的 SQL 有关。

2个问题:

1)我的假设是否正确,这些数字在 15 分钟的监控中似乎很高?

2)我从这里去哪里?我的下一步应该是什么?

我正在努力学习这些东西是如何工作的,我明白这是我将不得不继续深入研究的东西。

朝着正确的方向推动会很棒。

gbn*_*gbn 5

重新启动有问题的客户端。简单的。

ASYNC_NETWORK_IO 导致服务器变慢,因为客户端不能足够快地消耗数据:网络缓冲区填满。

仅供参考:CXPACKET 预计具有并行性。不确定当前状态,但超线程可能会导致 IIRC 过量。

你有没有重新启动客户端...?:-)

  • 用户 PC 上的页面加载不同于 Web 服务器从 DB 服务器读取数据。Web 服务器很可能是导致此问题的原因。例如,您是否有一些 Excel 用户加载了过多的数据?从 sys.sysprocesses 中,您将能够看到是哪个客户端导致的。 (2认同)