我经常听到人们说存储过程是预编译的。什么意思?
实际上,我们将查询写到存储的proc中,然后编译它。如果有任何语法错误,它就会报错。因此,如果是这种情况,那么编译就是在那个时间点进行的。
那么,"Pre“指的是什么?
发布于 2010-11-24 18:02:51
它们实际上是在CREATE和ALTER上进行预解析和语法/语义检查的
按需“编译”查询计划
有关编译和重用的概述,请参见"Batch Compilation, Recompilation, and Plan Caching Issues in SQL Server 2005 "
术语(在您的意思中)可以追溯到SQL Server 6.5。从SQL Server 7.0开始,上一白皮书链接中突出显示的“新”方式
发布于 2010-11-24 18:03:15
在Microsoft SQL Server中,存储过程在第一次运行时被编译到查询计划中。
在随后的运行中,它们有时会从源代码重新编译,但并不总是如此。这就是它们被称为“预编译”的原因。
除非指定应始终重新编译它们,或者在下次运行时运行sp_recompile以强制重新编译。
发布于 2010-11-24 18:03:24
如果运行存储的proc,它的sql内容将不会被解析。sql解析可能是非常耗时的操作。
https://stackoverflow.com/questions/4265503
复制相似问题