SQL Server 重新编译存储过程的方式有三种
SQL Server 中,强制重新编译存储过程的方式有三种:
sp_recompile 系统存储过程强制在下次执行存储过程时对其重新编译。具体方法是:从过程缓存中删除现有计划,强制在下次运行该过程时创建新计划。
创建存储过程时在其定义中指定 WITH RECOMPILE 选项,指明 SQL Server 将不为该存储过程缓存计划,在每次执行该存储过程时对其重新编译。当存储过程的参数值在各次执行间都有较大差异,导致每次均需创建不同的执行计划时,可使用 WITH RECOMPILE 选项。此选项并不常用,因为每次执行存储过程时都必须对其重新编译,这样会导致存储过程的执行变慢。
如果只想在要重新编译的存储过程而不是整个存储过程中执行单个查询,请在要重新编译的每个查询中指定 RECOMPILE 查询提示。此行为类似于本节前面中所述的 SQL Server 语句级重新编译行为,但除了使用存储过程的当前参数值外,RECOMPILE 查询提示还在编译语句时使用存储过程中本地变量的值。请仅在属于存储过程的查询子集中使用非典型值或临时值时使用此选项。有关详细信息,请参阅查询提示 (Transact-SQL)。
可以通过指定 WITH RECOMPILE 选项,强制在执行存储过程时对其重新编译。仅当所提供的参数是非典型参数,或自创建该存储过程后数据发生显著变化时,才应使用此选项。
注意如果删除或重命名了存储过程所引用的对象,那么在执行该存储过程时会返回错误。但如果存储过程中引用的对象被同名的对象所替换,则无须重新创建即可执行该存储过程。
下次运行存储过程时对其重新编译
- 示例:
USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO
SQL Server 重新编译存储过程的方式有三种的更多相关文章
- 理解性能的奥秘——应用程序中慢,SSMS中快(2)——SQL Server如何编译存储过程
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(1)--简介 本文介绍SQL Server如何编译存储过程并使用计划缓存 ...
- SQL SERVER 临时表导致存储过程重编译(recompile)的一些探讨
SQLSERVER为了确保返回正确的值,或者处于性能上的顾虑,有意不重用缓存在内存里的执行计划,而重新编译执行计划的这种行为,被称为重编译(recompile).那么引发存储过程重编译的条件有哪一些呢 ...
- Sql Server系列:存储过程
1 存储过程简介 存储过程是使用T-SQL代码编写的代码段.在存储过程中,可以声明变量.执行条件判断语句等其他编程功能.在MS SQL Server 2012中存储过程主要分三类:系统存储过程.自定义 ...
- SQL Server基础之存储过程
简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理.本篇主要介绍变量的使用,存储过程和存储函数的创建,调用,查看,修改以及删除操作. 一:存储过程概述 ...
- 【SQL Server】SQL Server基础之存储过程
SQL Server基础之存储过程 阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...
- (转)SQL Server基础之存储过程(清晰使用)
阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程 简单来说,存储过程就是一条或 ...
- 理解性能的奥秘——应用程序中慢,SSMS中快(6)——SQL Server如何编译动态SQL
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(5)--案例:如何应对参数嗅探 我们抛开参数嗅探的话题,回到了本系列的最 ...
- Sql Server数据库之存储过程
阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程 简单来说,存储过程就是一条或 ...
- sql server内置存储过程、查看系统信息
1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...
随机推荐
- lambda函数,内置map()函数及filter()函数
8.1 lambda函数 作用及意义: 1.没必要专门定义函数,给函数起名,起到精简的效果 2.简化代码的可读性 def ds(x): return 2 * x + 1 ds(5) ---11 g ...
- C编程经验总结
Turbo c Return (z);=return z; 图形界面的有scanf(“%d ~%d\n”,&~,&~);注意:中间不能有乱的东西 Printf(“~~~ %d~~%d\ ...
- lincode 680 Split String
Split String 描述 笔记 数据 评测 Give a string, you can choose to split the string after one character or ...
- linux 特殊命令(一)
1.ifconfig 网卡配置:ifconfig [网络设备] [参数] 1) up 启动指定网络设备/网卡. 2) down 关闭指定网络设备/网卡.该参数可以有效地阻止通过指定接口的IP信息流, ...
- 改进的平台设备驱动——dev和drv完全分离
这是平台设备: 1 #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> # ...
- 关于ZYNQ-700是否支持大容量SD卡汇报
关于ZYNQ-700是否支持大容量SD卡 不支持. 下午问了客服的FAE给的答案是不清楚,我自己调研了一下为什么. 调查结果: 1. 大容量的SD卡为什么不支持? SD2.0规范中(SDHC)硬件支持 ...
- 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)
补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...
- 《Cracking the Coding Interview》——第8章:面向对象设计——题目4
2014-04-23 18:17 题目:设计一个停车位的类. 解法:停车位,就要有停车.取车的功能了.另外我还加了一个工作线程用于计费,每秒给那些有车的车位加1块钱费用. 代码: // 8.4 Des ...
- 梆梆加固还原DEX文件
0x01 先说总结: 参照https://www.cnblogs.com/jiaoxiake/p/6818786.html 最后说的步骤, 参考:https://www.52pojie.cn/thre ...
- 记录下MoKee编译过程
纯属记录帖 关注和了解这个rom有段时间了. 最近有需要了解odex,折腾了几天还是在坑里. 索性,先编译下MoKee看看. 之前make过 4.2 和 5.1 ,刷到模拟器和N5里. 编译教程可以参 ...