存储过程的重编译处理

有3种方法可以重新编译

1. 在床架存储过程是使用WITH RECOMPILE子句

WITH RECOMPILE 子句可以指示SQL Server2005 不将该存储过程的查询计划保存在缓存中,而是在每次运行时重新编译和优化,并创建新的查询计划。

USE book

GO

CREATE PROCEDURE p_book1p

@出版社 VARCHAR(20)

WITH RECOMPILE

AS

SELECT * FROM book1 WHERE 出版社= @出版社

这种方法并不常用,因为在每次执行存储过程时都要重新编译,在整体上降低了存存储过程的执行速度,除非存储过程本省市一个比较复杂、耗时的操作。

 

2. 在执行存储过程时设定重新编译选项

通过在执行存储过程时设定重新编译,可以让SQL Server2005 在执行存储过程是重新编译该存储过程,在这一次执行后,心的查询计划又被保存在缓存中。

EXEC procedure_name WITH RECOMPILE

 

3. 通过系统存储过程设定重新编译选项

EXEC sp_recompile OBJECT

其中,OBJECT 当前数据库中的存储名称,表活试图名称。

例: EXEC sp_recompile book

你可能感兴趣的:(Sql,Server)