“匿名块”是 Oracle 的一个术语。但是说到 sql server
Declare
....
Begin
begin trans
. . .
commit
End
如果我通过 ADO.NET 以参数化的形式将此 SQL 发送到服务器,它会被缓存并重用还是每次都重新编译?
“匿名块”是 Oracle 的一个术语。但是说到 sql server
Declare
....
Begin
begin trans
. . .
commit
End
如果我通过 ADO.NET 以参数化的形式将此 SQL 发送到服务器,它会被缓存并重用还是每次都重新编译?
根据我对 Oracle 中匿名块的简要阅读,这本质上只是 SQL Server 中的一个临时查询。是的,即席查询缓存在 SQL Server 的查询计划缓存中,因此只要它们留在缓存中,就不会重新编译后续运行。(查询计划缓存具有根据服务器繁忙度从缓存中删除旧的和/或很少使用的计划的机制。)