Jam*_*olt 4 performance sql-server network
我从客户那里得到的一个常见请求是帮助找出哪些查询或客户对 SQL Server 使以太网链路饱和的贡献最大。
理想情况下,我会查看一些计数器或 DMV,显示按查询、客户端、应用程序、数据库等聚合的网络 I/O。
由于似乎没有直接的方法来做到这一点,作为替代,我通常会查看 sys.dm_exec_query_stats 中的 *_rows 列(我认为这些列仅存在于 2008 R2+ 中),并查找似乎涉及 BLOB。
有没有更好的方法来解决这个问题?
小智 7
您正确的 2008R2 及以后版本已将 *_rows 添加到 sys.dm_exec_query_stats。我会说这是要走的路。
您将有大量查询可以创建大量磁盘 IO,但结果集仍然很小。但是,如果没有巨大的逻辑 IO,就不可能有巨大的结果集。
因此,首先查看按逻辑 io 排序的查询统计信息,然后是行数。这会给你一个很好的起点。
在 2008 R2 之前,我会查看哪些具有大型逻辑 IO 的查询具有与网络相关的 waitstats。这种方法的问题是。1) 一旦网络饱和,很可能不仅您的大型查询,而且您的几乎所有查询都将具有与网络相关的 waitstats。2)网络相关的等待统计在很多情况下不是由网络相关问题引起的;-)
欢呼,爱德华
| 归档时间: |
|
| 查看次数: |
11844 次 |
| 最近记录: |