存储过程何时重新编译?(Sql Server) [英] When does a Stored Procedure recompile?(Sql Server)

查看:28
本文介绍了存储过程何时重新编译?(Sql Server)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我猜,

当我在存储过程中使用临时表时,存储过程会自动重新编译.

When i use temporary table in Stored Procedure ,the stored procedure will be automatically recompiled.

请给我其他可能性.

推荐答案

优化 SQL Server 存储过程以避免重新编译

  • 删除并重新创建存储过程
  • 在 CREATE PROCEDURE 或 EXECUTE 语句中使用 WITH RECOMPILE 子句
  • 更改任何引用对象的架构
  • 针对存储过程引用的表运行 sp_recompile 系统存储过程
  • 恢复包含存储过程或存储过程引用的任何对象的数据库
  • 从缓存中删除存储过程计划
  • 如果存储过程引用的表中有足够多的行已更改,则存储过程将重新编译.SQL Server 将重新编译存储过程以确保执行计划具有表的最新统计信息.
  • 如果开发人员将数据定义语言操作与数据操作语言操作交错放置,则存储过程将重新编译.这通常是在整个代码中创建和引用临时对象时引起的.

这篇关于存储过程何时重新编译?(Sql Server)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆