2

有谁知道 ADO.NET SqlCommand 对象的 prepare 方法在什么情况下有用?

4

2 回答 2

1

我们谈论的是暗示 Microsoft SQL Server 的 SqlCommand。据我所知,SQL Server 一直支持它。

但尚不清楚它是否有任何用处。我还没有找到真正了解的人。很多人声称它没有任何用处,也没有可测量的性能差异。我希望以一种或另一种方式看到证据。

在另一个数据库(使用 FbCommand 对象的 Firebird)上,我知道如果您不小心,它可能会导致问题。如果您准备了一个语句,但从不使用它,那么事务将永远保持打开状态。我们必须从 Firebird 的代码中删除所有准备工作。我们习惯于准备任何可能被多次执行的东西。

于 2009-12-01T20:07:54.197 回答
0
  • 如果底层数据库支持它并且
  • 如果您要多次调用相同的命令(使用不同的参数值)。这样可以节省一些时间,因为数据库可以重用相同的查询计划。

通常,现代数据库会缓存命令和查询计划,但通过预先准备好查询或命令,您仍然可以节省一些时间。

于 2009-10-12T08:49:30.897 回答