首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“存储过程是预编译的”是什么意思?

“存储过程是预编译的”是什么意思?
EN

Stack Overflow用户
提问于 2010-11-24 18:00:16
回答 4查看 14.9K关注 0票数 6

我经常听到人们说存储过程是预编译的。什么意思?

实际上,我们将查询写到存储的proc中,然后编译它。如果有任何语法错误,它就会报错。因此,如果是这种情况,那么编译就是在那个时间点进行的。

那么,"Pre“指的是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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开始,上一白皮书链接中突出显示的“新”方式

票数 4
EN

Stack Overflow用户

发布于 2010-11-24 18:03:15

在Microsoft SQL Server中,存储过程在第一次运行时被编译到查询计划中。

在随后的运行中,它们有时会从源代码重新编译,但并不总是如此。这就是它们被称为“预编译”的原因。

除非指定应始终重新编译它们,或者在下次运行时运行sp_recompile以强制重新编译。

票数 2
EN

Stack Overflow用户

发布于 2010-11-24 18:03:24

如果运行存储的proc,它的sql内容将不会被解析。sql解析可能是非常耗时的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4265503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档