2011-06-29 271 views
0

我将VB.Net 2代码(VS 2005)移植到VB.Net 4(VS 2010)中。到目前为止事情一直比较顺利。但是,在测试我的新移植代码时,我遇到了一个奇怪的行为。SqlClient.SqlDataAdapter.Update()执行速度很慢

在VS 2005(.Net 2)中,我有一个填充数据的DataTable。然后我使用DataAdapter将更新发送回SQL Server。当我执行SqlClient.SqlDataAdapter.Update()命令时,它大约在4秒内执行。在VS 2010(.Net 4)的同一张表上,相同的代码在1分17秒内运行。这是完全不能接受的。但是,我不知道为什么它正在发生。 .Update()方法是一个内部命令,不是以任何方式修改的。它不会出错,它只是非常缓慢。

任何人有任何想法?

+0

有没有人听说过或遇到过这个问题?没有人注意到使用.Net 4的SQLClient.SQLDataAdapter降低性能? – TekkGuy

+0

没有见过类似的东西,打开旧的和新的探查器比较相同的操作,可能会给你一些线索 –

回答

2

经过多个月与Microsoft直接合作......找到了解决方案/答案。

我不觉得这么糟糕,因为它花了六个不同的微软程序员,差不多六个月的时间才发现答案。显然,Visual Studio 2010的IDE的行为与Visual Studio 2005相比有很大不同。在IDE中运行应用程序时,VS2010挂接到正在运行的可执行文件实际上会显着阻碍应用程序的性能。有一个隐藏的选项(没有在菜单结构中找到)在没有附加调试器的情况下运行应用程序。热键是CTRL + F5。当应用程序在此模式下运行时,我们的性能问题消失了。这是一个愚蠢而简单的答案......但是让我感觉更好的两件事是VS2005没有这个问题,没有菜单中没有列出“run w/o debugger”选项,六位微软程序员确定这是问题所在。

因此,对于似乎有同样问题的任何人...尝试CTRL + F5。 :-)