2012-04-04 16 views
0

我们在计算机A上配置了SQL Server 2008 R2的“服务器”。在同一个局域网中,我们有机器B,它是一台具有相同硬件而不安装SQL Server的计算机。SQL Server大量的网络通信开销?

我们有一套单元测试要求从数据库中一些记录,并将它们映射到正确的CLR对象。当从机器A运行此单元测试时,使用SQL Server,测试运行5ms。

如果我测试的代码复制到机器B和运行测试共坐〜50毫秒的这是一个显著增加,如果这仅仅是通过网络开销造成的。

执行不发送大量数据的查询(没有斑点/列中的XML数据),总的数据大约是几KB。数据使用IDataReader读取。我们使用一次打开的单个连接,用于向数据库发出约24次查询。

是否有任何提示/技巧,我可以为了尝试测试,如果它是真正的网络开销减慢执行?我有一种感觉,就是在SQL Server中没有正确配置。

+0

我不知道该怎么回答你期望在这里:任何你做在网络上会比在本地做显著慢,所以本身这一点也不奇怪。令人惊讶的是,你正试图在你的单元测试执行中保存45ms。如果你能解释为什么你需要这样做,有人可能会有一个建议。您可能还想尝试dba或serverfault网站,因为这似乎不是一个编程问题。 – Pondlife 2012-04-04 07:54:55

+0

@Pondlife,thx寻求帮助。我确信网络开销可能是问题,但我想知道如果我没有错过什么和/或是否有方法可以描述这样的事情。把它移到serverfault/dba可能是个好主意,但我不知道如何去做。 – thekip 2012-04-04 08:31:05

+0

你还没有真正弄清楚“问题”是什么,因为大多数人不会抱怨他们的单元测试花费45毫秒来执行:) – Pondlife 2012-04-04 11:44:05

回答

0

这听起来像是正常的行为,它只是网络延迟...要确认是否这些数字听起来合理,从另一个坪一台服务器,我也不会感到惊讶,如果这个报道往返顺利进入两位数的毫秒而平的本地机器应该在1ms内...我同意Pondlife,听起来像是一个健康局域网的课程。

+0

我已经ping服务器机器,它进来时约1毫秒,有时更低,有时1毫秒。我的问题是我无法衡量为什么会发生这种情况。 – thekip 2012-05-22 07:17:15