早上好 !
有没有办法在SQL Server中预编译存储过程?我的要求是这样的..我有一些存储过程,编译比执行需要更多时间.所以我想预编译所有存储过程.在db服务器启动并运行时预编译它们会很不错.
任何有关这方面的想法都会非常有帮助!
谢谢和问候,帕万.
编写一个脚本,使用"SET FMTONLY ON"执行每个存储过程.
将编译该过程,但在执行期间不会对DB进行永久性更改.您不能将此用于使用临时表的过程(#table语法).
这就是Microsoft在Visual Studio中如何确定存储过程的输出应该是什么.
您可以强制重新编译,但直到下次运行时才会发生
EXEC SP_RECOMPILE YourProcedureName
每次运行时强制它重新编译:
CREATE PROCEDURE YourProcedureNameWITH RECOMPILE .....
这次强制它重新编译:
EXEC YourProcedureName WITH RECOMPILE
这是一篇关于优化 SQL Server 存储过程以避免重新编译的好文章
根据OP的评论进行编辑:
为什么你不第一次使用虚假数据手动运行它(在应用程序之外)(但不是那么虚假,执行计划很糟糕,谷歌:sql server参数欺骗和嗅探),这可以强制编译,然后运行一些sql 删除插入的内容。当用户第一次运行它时,它已经运行并被编译了。
| 归档时间: |
|
| 查看次数: |
15827 次 |
| 最近记录: |