Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQLServer中,决定网络开销的网络是多少_Sql Server_Sql Server 2005_Performance - Fatal编程技术网

Sql server 在SQLServer中,决定网络开销的网络是多少

Sql server 在SQLServer中,决定网络开销的网络是多少,sql-server,sql-server-2005,performance,Sql Server,Sql Server 2005,Performance,我们在同一台机器上有一个运行C并与SQL server通信的开发服务器 我们有另一台服务器运行相同的代码,并在另一台机器上与SQL server通信 一个作业执行60000次读取,即调用存储过程60000次-每次读取返回一行 作业在第一台服务器上运行的时间是在第二台服务器上运行的时间的1/40 我们已经在研究两个SQL Server碎片、tempdb、内存等之间的“内部”差异,但是有什么好方法可以确定第二个配置的速度慢多少,因为它必须通过网络 [相当令人困惑的是,我发现了一个“SQL Serve

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

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

一个作业执行60000次读取,即调用存储过程60000次-每次读取返回一行

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

我们已经在研究两个SQL Server碎片、tempdb、内存等之间的“内部”差异,但是有什么好方法可以确定第二个配置的速度慢多少,因为它必须通过网络


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

SQL Server随探查器实用程序一起提供。这将告诉您在每个SQL Server实例上执行查询的时间。注意任何不一致之处。ExecutionTime列中的任何时间都无法计算,这里是传输时间。。。或客户端显示时间。可能您的客户机渲染结果或计算结果所需的时间更长。

您希望得到什么样的结果?在一台机器上运行任何东西与通过网络运行任何东西都会给您带来不同的计时。最大的时差是网络吞吐量。您需要以两种方式与网络服务器通信


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

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


为了得到更好的想法,我会尝试简单地选择60000条记录,因为您说它将通过网络从远程机器逐个返回60000条记录。同样,这并没有让您了解存储过程的开销,但是它会让你快速了解机器之间的网络速度。

所有机器都在同一网段上吗?它们实际上在两个完全不同的网络上-只是运行相同的进程,使用具有相同结构和相同数据库的数据库。一个是由单个程序员使用的开发环境另一个是舞台环境谢谢你的回复。不过,我不能百分之百肯定我能理解。当您说“查找任何差异”时,您的意思是比较探查器在两个数据库服务器上显示的给定操作的时间吗?我必须承认我没有想过要试一下。在查看当前探查器结果时,60000次SP调用之间已经存在显著差异,因此我不确定可以从中提取多少信息。然而,正如我所说,我还没有尝试过,也许我应该尝试。我真正想要的只是一个工具,用来测量一个数据包从数据库服务器到数据库服务器需要多长时间。我确实想寻找执行时间上的差异。虽然您只需要一个工具来测量数据包往返数据库服务器所需的时间,但我还是建议使用古老的ping.exe。我确实尝试过ping.exe,ping时间实际上为零,但我不确定SQL server本身是否会在通过网络接收请求时增加开销。我会在这里重复我刚才在首页评论中的内容。。。我希望找到的是一个客户端工具,它可以监视来自SQL Server的数据包进出,并确定“在网络上”花费了多少时间。这可能是太多的要求,但这是我所追求的-我忘了说。。。谢谢你的评论,我很感激。也许我最好能举一个我感兴趣的例子。如果在联网情况下(我描述的第二种情况下),我发现SP的每次执行都涉及25毫秒的网络开销,那么对于60000次执行,我可以立即预计该过程比非联网情况下花费的时间长1500秒。我希望找到的是一个客户端工具,它可以监视来自SQL Server的数据包进出,并确定“在网络上”花费了多少时间。这可能是太多的要求,但这是我所追求的-我以前使用过SQLQueryStress程序。我不确定这正是你想要的。这很好-在我尝试之前,我从未见过SQLQueryStress。谢谢。这太好了。不知怎么的,我从来没有在管理工作室里注意到这一点,但我认为它非常接近我想要的,我会尝试一下。