SQL Server - Management Studio - 客户端统计 - 服务器回复等待时间与客户端处理时间

2024-04-07

我有一个运行缓慢的查询,我一直在努力优化它。

在 Management Studio 中查看客户端统计信息时,服务器回复等待时间约为 8 秒,客户端处理时间约为 1 秒。

我一直认为服务器回复的等待时间是要处理的数字,而客户端处理时间通常与带宽或大数据大小相关。

我对查询进行了一些更改,现在服务器回复的等待时间约为 250 毫秒,但是,客户端处理时间已增加到约 9 秒,使得总执行时间稍微慢一些。

返回的结果集是完全相同的。

有人能解释一下这两个数字之间到底有什么区别以及什么会导致这样的结果吗?


“服务器回复等待时间”是指最后一个请求数据包离开客户端与服务器返回第一个响应数据包之间的时间。 “客户端处理时间”是第一个响应数据包和最后一个响应数据包之间的时间。顺便说一句,我找不到支持这些说法的文件,但我想说,根据我的观察,它们是有效的有根据的猜测。

如果您运行的查询具有较长的“服务器回复等待时间”,则意味着服务器需要很长时间才能生成第一行。这对于具有需要在继续之前评估整个子查询的运算符的查询来说很常见(典型的示例是排序运算符)。

另一方面,“服务器回复等待时间”非常短的查询意味着该查询能够快速返回第一行。然而,较长的“客户端处理时间”并不一定意味着客户端花费了大量时间进行处理并且服务器被阻塞等待客户端。它可能只是意味着服务器继续从结果中返回行,这是返回最后一行所花费的时间。

您看到的是查询计划更改的结果,该更改可能删除了阻止执行的运算符(很可能是排序),并且新计划使用不同的策略,可以更快地生成第一个结果(可能使用保证请求的索引)订单所以我不需要排序),但总体来说持续时间更长。

如果您担心客户端阻碍服务器(这可能发生在大型结果集上),那么您应该调查wait_type in sys.dm_exec_requests http://msdn.microsoft.com/en-us/library/ms177648.aspx(还有信息来自sys.dm_os_tasks http://msdn.microsoft.com/en-us/library/ms174963.aspx and sys.dm_os_workers http://msdn.microsoft.com/en-us/library/ms178626.aspx对于执行正在调查的查询的会话来说是有用的。如果我没有记错的话,服务器等待客户端等待类型是ASYNC_NETWORK_IO http://msdn.microsoft.com/en-us/library/ms179984.aspx。您还可以查看总计sys.dm_os_wait_stats http://msdn.microsoft.com/en-us/library/ms179984.aspx,使用重置它DBCC SQLPERF("sys.dm_os_wait_stats" , CLEAR) http://msdn.microsoft.com/en-us/library/ms189768.aspx然后运行查询,查看 ASYNC_NETWORK_IO 等待类型总计多长时间。当然,请确保测试期间服务器上没有发生其他活动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server - Management Studio - 客户端统计 - 服务器回复等待时间与客户端处理时间 的相关文章

  • 比较两个 numpy 数组的最快方法

    我有两个数组 gt gt gt import numpy as np gt gt gt a np array 2 1 3 3 3 gt gt gt b np array 1 2 3 3 3 无论顺序如何 比较这两个数组的元素是否相等的最快方
  • 一张表中按最大日期过滤重复行的 SQL 查询

    我有一个 SQL 数据库 persons 它具有基于 IDNum 列的重复条目 我需要查询条目并仅根据最新创建日期显示行或重复条目 这是查询 SELECT IDNum PersonPGUID CreatedDateTime FirstNam
  • 查询嵌套查询结果中两列的位置

    我正在编写这样的查询 select from myTable where X in select X from Y and XX in select X from Y X 列和 XX 列的值必须位于同一查询的结果中 select X fro
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando
  • UITableView 由于阴影和边框而滞后

    我有以下代码来向 UITableViewCell 的背景添加边框颜色和阴影 我的问题是这段代码会导致 tableView 本身出现巨大的滞后 请你告诉我如何优化我的代码 防止 UITableView 的滞后 if cell viewWith
  • SQL Server 中的每个实体自动增量字段?

    我的数据库中有一个稳定的 食物 主键为 fooD 我有第二个表 foo Attributes 其外键引用 foo fooD 我想在 fooAttributes 表上有一个组合键 fooID attributeNumber 当我插入新属性时
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • 性能:cakephp-mysql 中的 UUID 与自动递增

    我正在搜索 cakePHP 生成的 UUID 32 个字符长 是否比自动增量在性能上更快 插入和选择操作的比较 我应该使用 cakePHP 生成的 UUID 还是使用 MySQL 的简单自动增量生成的 UUID 这是我发现的一个案例研究 但
  • SSL 速度:128 位与 256 位

    我决定使用 SSL 加密我的整个网站 即使实际上只有部分网站是必要的 最终结果是该网站现在有点慢 所以 我的问题是 我是否应该只加密网站的会员部分 请记住我在首页上有登录表单 我是否应该将加密降低到 128 位 如果站点总体较小 速度差异是
  • 从完整路径解析文件名和路径

    我需要使用 SQL 查询从完整路径解析文件名和文件路径 例如 完整路径 SERVER D EXPORTFILES EXPORT001 csv FileName Path EXPORT001 csv SERVER D EXPORTFILES
  • 使用 SQL 扩展事件捕获链接服务器查询

    我尝试了许多事件类型 但无法实现链接服务器的日志记录 我可以找出所有其他数据库的事件 但对于链接服务器却没有运气 有什么建议 您可以使用OLEDB DATA READ跟踪对链接服务器的查询的事件 如果此事件的结果比您想要的更详细 您可能需要
  • Android:了解 OnDrawFrame、FPS 和 VSync (OpenGL ES 2.0)

    一段时间以来 我在 Android 游戏中遇到了运动精灵间歇性 卡顿 的情况 这是一个非常简单的 2D OpenGL ES 2 0 游戏 这是一个持续存在的问题 我已经多次重新访问过 在我的游戏循环中 我有 2 个 计时器 一个用于记录前一
  • 重新启动后无法远程或本地连接到 SQL Server

    上周末进行一些网络维护后 我们的开发服务器出现了一些问题 导致我们重新启动它 重新启动期间安装了一些更新 这可能是也可能不是一个因素 从那时起 我们就无法连接到 SQL Server 2005 即使是通过 Management Studio
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 从头开始构建 OLAP 解决方案时应该注意什么?

    我在一家运行基于 MS SQL 数据库服务器的软件产品的公司工作 多年来我已经用 PHP 开发了 20 30 个相当高级的报告 直接从数据库获取数据 这非常成功 人们对此感到高兴 但它有一些缺点 对于新的变化 它可能是相当开发密集型的 用户
  • Mono 实现 CLR 吗?或者至少有一些非托管的内部调用?或无?

    我们知道 C 使用非托管代码 如 P Invoke 或 CLR 实现的代码 如 InternalCall 我想知道的是 mono 它自己实现了一个完整的 CLR 还是只是一些非托管代码或者什么都没有 我可以使用 Net Reflactor或
  • 为什么反射会减慢Android手机的速度

    我多次读到反射会降低手机性能 这有多真实 例如 在我的例子中 我从 Web 服务获取一些参数 这些参数与我在 Android 应用程序中的类的参数同名 所以我只是使用java字段和反射设置这些参数的值 它似乎并没有降低性能 有人可以向我解释
  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都

随机推荐