Sql Server是否缓存了跨事务的编译查询和执行计划?

时间:2010-12-17 15:43:26

标签: sql-server sql-server-2005 ado.net sqlclient

民间,

我正在使用best-practice准备好的sql语句执行许多因相同参数而异的插入/更新。我的设计有两个选择:1。所有工作都在一次交易中完成。 2.将工作分解为多个事务(不是每个语句一个,而是适合我的环境的并发性)。如果我选择#2,SQL是否会利用跨事务的缓存编译查询/执行计划?或者,因为查询是在事务中进行的,所以缓存的生命周期将仅限于事务?

2 个答案:

答案 0 :(得分:6)

计划与交易无关。或者就此而言的联系

也就是说,许多txns和/或用户和/或连接可以共享计划。如果计划有效且仍在缓存中,则在不同时间

答案 1 :(得分:5)

查询缓存独立于事务,因此无论您选择哪个选项,您的查询都将被缓存。