0

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

有没有其他方法可以让我措手不及,仍然保留SqlCommand. 最佳实践说当我不需要它时我应该毫无准备,我怎么能不打电话SqlCommand.Dispose()呢?

4

1 回答 1

1

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

于 2013-10-29T10:08:18.867 回答