在什么情况下SqlCommand对象的prepare方法有用?

时间:2009-10-12 08:45:52

标签: ado.net prepared-statement sqlcommand

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

2 个答案:

答案 0 :(得分:1)

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

然而,目前尚不清楚它是否有用。我还没找到真正了解的人。很多人声称它没有任何用处,也没有可衡量的性能差异。我想以某种方式看到证据。

在另一个数据库(Firebird使用FbCommand对象)上我知道如果你不小心它可能会导致问题。如果您准备一份声明但从未使用它,则交易将永久保持打开状态。我们必须从我们的Firebird代码中删除所有准备工作。我们一直习惯于准备可能多次执行的任何事情。

答案 1 :(得分:0)

  • 如果底层数据库支持它并且
  • 如果您要多次调用相同的命令(具有不同的参数值)。这样可以节省一些时间,因为数据库可以重用相同的查询计划。

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