【问题标题】:SqlClient.SqlDataAdapter.Update() Performs Very SlowlySqlClient.SqlDataAdapter.Update() 执行非常缓慢
【发布时间】:2011-06-29 18:03:35
【问题描述】:

我正在将 VB.Net 2 代码 (VS 2005) 移植到 VB.Net 4 (VS 2010)。到目前为止,事情进展得比较顺利。然而,在测试我的新移植代码时,我遇到了一个奇怪的行为。

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

有人有什么想法吗?

【问题讨论】:

  • 有没有人听说过或经历过这个问题?没有人注意到使用 .Net 4 的 SQLClient.SQLDataAdapter 会降低性能?
  • 没见过这样的东西,打开新旧探查器比较相同的操作,可能会给你一些线索

标签: vb.net visual-studio-2010 sql-server-2005


【解决方案1】:

在与 Microsoft 直接合作数月后...找到了解决方案/答案。

我感觉还不错,因为我花了六位不同的 Microsoft 程序员和将近六个月的时间才找到答案。显然,Visual Studio 2010 的 IDE 的行为与其对应的 Visual Studio 2005 明显不同。在 IDE 中运行应用程序时,VS2010 挂钩到正在运行的可执行文件实际上会大大降低应用程序的性能。有一个隐藏选项(在菜单结构中找不到)可以在不附加调试器的情况下运行应用程序。热键是 CTRL+F5。当应用程序以这种模式运行时,我们的性能问题就消失了。这是一个如此愚蠢和简单的答案......但让我感觉更好的两件事是VS2005没有这个问题,菜单中根本没有列出“run w/o debugger”选项,它花了六位微软程序员确定这是问题所在。

所以对于其他似乎有同样问题的人...尝试 CTRL+F5。 :-)

【讨论】:

    猜你喜欢
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2014-05-25
    • 1970-01-01
    相关资源
    最近更新 更多