【问题标题】:How much is the network - determing network overhead in SQL Server网络是多少 - 确定 SQL Server 中的网络开销
【发布时间】:2009-05-05 01:58:46
【问题描述】:

我们有一个运行 C# 的开发服务器,并在同一台机器上与 SQL 服务器通信。

我们有另一台服务器运行相同的代码并与另一台机器上的 SQL 服务器通信。

一个作业执行 60,000 次读取(即它调用存储过程 60,000 次 - 每次读取返回一行)。

作业在第一台服务器上运行的时间是第二台服务器上运行时间的 1/40。

我们已经在研究两个 SQL Server 之间的“内部”差异(碎片、临时数据库、内存等),但是确定第二个配置慢多少的好方法仅仅是因为它必须通过网络?

[令人困惑的是,我发现了一个“SQL Server Ping”工具,但它实际上并没有尝试任何时间测量,据我所知,这正是我们所需要的]

【问题讨论】:

  • 所有机器都在同一个网段吗?
  • 它们实际上在两个完全不同的网络上——只是运行相同的进程并使用具有相同结构和相同数据库的数据库(一个是个人程序员使用的开发环境,另一个是登台环境)

标签: sql-server sql-server-2005 performance


【解决方案1】:

在远程计算机上打开 SQL Server 管理服务器。开始一个新的查询。单击查询,包括客户统计信息。运行您的存储过程。在结果的“客户端统计信息”选项卡中,您将看到一些有关通过网络来回发送的数据包数量的一些基本信息。我的猜测是,对于一次阅读,您不会看到那么多开销。

为了更好地了解,我会尝试通过网络从远程计算机上简单地选择 60,000 条记录(因为您说它会一一返回 60,000 条记录)。同样,这并不能让您了解存储过程的开销,但可以让您快速了解机器之间的网络速度。

【讨论】:

  • 这太好了,我在 Management Studio 中从未注意到这一点,但我认为它与我所寻找的非常接近,我会试一试。
【解决方案2】:

SQL Server 附带 Profiler 实用程序。这将告诉您查询在每个 SQL Server 实例上的执行时间。注意任何差异。任何时间(在 ExecutionTime 列中)在这里不能被考虑的是传输时间......或客户端显示时间。也许您的客户端机器需要更长的时间来呈现结果或计算结果。

【讨论】:

  • 感谢您的回复。我不是 100% 确定我理解它。当您说“查找任何差异”时,您的意思是比较两个数据库服务器上 Profiler 显示的给定操作的时间吗?我必须承认我没想过要尝试。在查看当前分析器结果时,对 SP 的 60,000 次调用中已经存在显着差异,所以我不确定我可以从中提取多少信息。但是,正如我所说,我还没有尝试过,也许我应该尝试过。我真正想要的只是一个工具,用于测量数据包进出数据库服务器所需的时间。
  • 合二为一。我确实是想寻找执行时间的差异。虽然如果你想要的只是一个工具来测量一个数据包往返于数据库服务器需要多长时间,我可能会建议使用古老的 ping.exe。
  • 我确实尝试过 ping.exe(并且 ping 时间实际上为零),但我不确定 SQL Server 本身是否会在通过网络接收请求时产生开销。我将在这里重复我刚刚在页面评论中的内容......我希望找到的是一个客户端工具,它可以观察来自 SQL Server 的数据包,并确定在“网络”上花费了多少时间。这可能问得太多了,但这就是我所追求的;-)
  • 我忘了说...谢谢你的 cmets 我很感激他们。
【解决方案3】:

您期待什么结果?在一台机器上运行所有东西与通过网络运行肯定会给你不同的时间。您最大的时间差异将是网络吞吐量。您需要双向与联网服务器通信。

如果您可以将 NOCOUNT 设置为开启,这将有助于减少网络流量。

【讨论】:

  • 也许我最好举一个我感兴趣的例子。如果在网络情况下(我描述的第二种情况)我发现 SP 的每次执行都涉及 25 毫秒的网络开销,那么对于60,000 次执行 我可以立即预计该过程将比非网络情况多花 1500 秒。我希望找到的是一个客户端工具,它可以监视来自 SQL Server 的数据包,并确定“在网络上”花费了多少时间。这可能问得太多了,但这就是我所追求的;-)
  • 我过去使用过 SQLQueryStress 程序。不确定它是否是您正在寻找的。 datamanipulation.net/SQLQueryStress
  • 那很好 - 我从来没有见过 SQLQueryStress 之前我会试一试。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多