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 - 客户端统计 - 服务器回复等待时间与客户端处理时间 的相关文章

  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Visual Studio 2010 中的数据库设计器

    我需要创建一个全新的 Sql Server 2008 数据库 并希望使用 Visual Studio 2010 Ultimate 中的数据库项目 我已经创建了该项目并在下面添加了一个表格dbo架构 桌子 sql仅以纯文本形式显示 但带有颜色
  • SQL中的NULL和编程语言中的NULL之间的区别

    我刚刚遇到一个关于如何在 T SQL 可能还有其他形式的 SQL 中处理 NULL 的有趣场景 这个问题得到了很好的描述和回答这个问题 https stackoverflow com questions 2866714 how does a
  • 无法使用 Tedious 和 Node JS 连接到本地 SQL Server 数据库

    我正在尝试连接到本地计算机上的 SQL Server 我正在尝试使用乏味和乏味 ntlm 两者的配置如下 var tds require tedious ntlm var tds require tedious var config use
  • try-catch 块是否会降低性能[重复]

    这个问题在这里已经有答案了 This link http www cplusplus com doc tutorial exceptions states 为了捕获异常 我们必须将一部分代码放在异常下 检查 这是通过将这部分代码包含在 tr
  • 无法删除 Access 中 SQL 表上的注册表

    我有一个在 Access 应用程序中链接的 SQL Server 表 如果我尝试使用删除查询删除记录 则没有问题 但是 如果我尝试直接在表中删除记录或在数据表模式下使用选择查询 Access 不允许我删除记录并引发以下警告 Microsof
  • 数据库未在客户端系统上运行的 C# Windows 窗体应用程序

    我用 C 开发了一个使用 SQL Server 数据库连接的 Windows 窗体应用程序 我在 NET Framework 4 0 和 SQL Server 2008 R2 中开发它 我的应用程序正在使用应用程序根目录中存在的本地数据库
  • 在c#中创建sql连接

    我是这个网站的新手 也是编程的新手 我目前正在通过销售点创建库存系统 它使用模态和非模态形式 我的问题是 我正在研究change password对话框必须连接到数据库才能覆盖密码字段 我使用的数据库是Microsoft SQL Serve
  • 为什么动态 qml 对象的创建如此缓慢,有哪些合理的替代方案?

    我想要实现的目标类似于棋盘游戏 有一个100 100的网格 放在一个Item它驻留在一个Flickable 游戏板 的各个矩形都是 svg 图像 目前大约有 20 种 可能会增加到数百种 作为基准测试 我只是尝试用元素填充 世界 Compo
  • 数组与列表的性能

    假设您需要一个需要频繁迭代的整数列表 数组 我的意思是非常频繁 原因可能有所不同 但可以说它位于大容量处理的最内层循环的核心 一般来说 人们会选择使用列表 List 因为它们的大小具有灵活性 最重要的是 msdn 文档声称列表在内部使用数组
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • 意外的查询结果

    为什么我从 sql server 得到以下结果 SELECT 12 C1 CONVERT int C2 CASE WHEN THEN equal ELSE not equal END C3 Sql Server Fiddle 演示 http
  • 弹簧隔离支持吗? SQL快照隔离

    我们正在使用 SQL Server 快照隔离可能是提高性能和解决一些死锁问题的好方法 假设我们确实需要更改为快照隔离 我似乎找不到一种简单的方法来在 Springs 上启用快照隔离 Transactional 我发现以下 hibernate
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 从 Sharepoint 到 SQL Server 的实时同步

    我见过许多将 SQL Server 数据同步到 SharePoint 的解决方案 但没有见过将 SharePoint 列表同步到 SQL Server 的解决方案 有谁知道解决方案吗 商业化就好了 或者 我需要编写一个 Web 部件来创建多
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐