SQL Server存储过程是否自动重新编译?

时间:2012-11-28 17:43:45

标签: sql sql-server-2005 stored-procedures

如果我使用Web应用程序Web Data Administrator并编辑存储过程SQL查询,它是否会自行重新编译? (SQL Server新手和数据库开发的这一方)

2 个答案:

答案 0 :(得分:1)

MSSQL Server确实维护query plans的缓存,但这与编译代码不同。

SQL Server管理此缓存,如果缓存非最佳计划,则可能是一些痛苦的根源。虽然这在15年内发生在我身上不到5次(这似乎是特定服务器的一个问题), 最好让SQL服务器处理这个而不是触摸它 < /强>

您可以通过提供WITH RECOMPILE选项强制SQLServer重新编译。同样需要注意, 除非您有充分的理由,否则

答案 1 :(得分:0)

SQL是一种脚本语言,这意味着您编写的代码不会被编译。相反,它存储在服务器上以供以后使用。

编辑存储过程时,可以执行ALTER脚本或DROP然后执行CREATE脚本。这会将Web数据管理(或SSMS)窗口中的文本发送到服务器,发出命令告诉服务器将此新查询存储为稍后使用的过程。

因此,简而言之,是的,如果您执行ALTER脚本。