0

我是 VB.NET Windows 应用程序开发的新手。现在我指的是一个已经开发的应用程序。在我的参考项目中,每个数据更新都使用 DataAdapter,首先将数据加载到适配器中,然后创建一个更新适配器的新行。因此,此方法首先获取数据然后更新数据。如果我们使用直接 SQL 命令,则只有一个数据库插入/更新语句。这两种方法之间是否有显着影响?

4

2 回答 2

1

这两种方法之间是否有显着影响?

这是一个非常笼统的问题,所以一般的答案是“这取决于……”。创建和填充 DataAdapter 的开销会让您付出一些代价,但这是否是一笔可观的成本取决于诸如...

  • 您正在更新的表中有多少数据

  • 您将多少信息拉入 DataAdapter

  • 数据库文件是在本地驱动器还是网络共享上

...和(也许)许多其他因素。让您知道在您的特定情况下这两种方法之间是否存在显着性能差异的唯一方法是让您运行一些测试并比较结果。

于 2013-09-05T13:59:24.587 回答
0

据我所知,后一种选择总体上会更快。DataAdapter 将根据您的建议查询数据并将其加载到内存中,然后再进行任何所需的更新。但是,如果 DataAdapter 更新所有行而不管行是否已更改,我会感到非常惊讶 - 我应该期望它只会将所需的 SQL 发送到 DBMS。

通过 SqlCommand 运行更新语句会绕过查询和加载数据,并且依赖于您的查询可能会以相同的方式对数据库本身进行更新。

两者之间的决定完全取决于上下文。

于 2013-09-05T14:00:16.090 回答