我如何取消准备SqlCommand.Prepare准备的SqlCommand

时间:2013-10-29 09:54:52

标签: .net sql sql-server sqlclient

看起来,我无法准备的唯一方法是调用SqlCommand.Dispose(),即使在这种情况下,我也看不到毫无准备的命中SQL Server(从SQL Profiler查看,没有sp_unprepare)。但当然SqlCommand.Dispose()确实摆脱了SqlCommand,后者又从服务器缓存中获取了prepare语句的rids。

还有其他方法我可以毫无准备并仍保留SqlCommand。 最佳实践说当我不需要它时我应该毫无准备,如何在不致电SqlCommand.Dispose()的情况下解决这个问题?

1 个答案:

答案 0 :(得分:1)

准备不处理像对象一样处理的内存。准备用于预先重新编译您的sql,以防您反复运行相同的查询,这样做可以节省时间。准备在服务器级别执行,从语句生成的计划由数据库完全管理。因此,与客户毫无准备的概念是无关紧要的。