我们在计算机A上配置了SQL Server 2008 R2的“服务器”。在同一个局域网中,我们有机器B,它是一台具有相同硬件而不安装SQL Server的计算机。SQL Server大量的网络通信开销?
我们有一套单元测试要求从数据库中一些记录,并将它们映射到正确的CLR对象。当从机器A运行此单元测试时,使用SQL Server,测试运行5ms。
如果我测试的代码复制到机器B和运行测试共坐〜50毫秒的这是一个显著增加,如果这仅仅是通过网络开销造成的。
执行不发送大量数据的查询(没有斑点/列中的XML数据),总的数据大约是几KB。数据使用IDataReader
读取。我们使用一次打开的单个连接,用于向数据库发出约24次查询。
是否有任何提示/技巧,我可以为了尝试测试,如果它是真正的网络开销减慢执行?我有一种感觉,就是在SQL Server中没有正确配置。
我不知道该怎么回答你期望在这里:任何你做在网络上会比在本地做显著慢,所以本身这一点也不奇怪。令人惊讶的是,你正试图在你的单元测试执行中保存45ms。如果你能解释为什么你需要这样做,有人可能会有一个建议。您可能还想尝试dba或serverfault网站,因为这似乎不是一个编程问题。 – Pondlife 2012-04-04 07:54:55
@Pondlife,thx寻求帮助。我确信网络开销可能是问题,但我想知道如果我没有错过什么和/或是否有方法可以描述这样的事情。把它移到serverfault/dba可能是个好主意,但我不知道如何去做。 – thekip 2012-04-04 08:31:05
你还没有真正弄清楚“问题”是什么,因为大多数人不会抱怨他们的单元测试花费45毫秒来执行:) – Pondlife 2012-04-04 11:44:05