存储过程的预编译功能: 存储过程创建生效时,会编译缓存一个存储过程的执行计划。
存储过程是一段SQL语句和可选控制流语句的预编译集合。
预编译就是缓存一个执行计划(在存储过程创建时,查询优化器对其进行分析、优化,并给出一个最终的执行计划(存储在Plane Cache中)。这样,在执行过程时便可按照这个执行计划进行查找)。
预编译主要体现在存储过程中的复杂查询语句:每次执行时,不需要每次编译,直接根据预编译的执行计划进行查找。
但是有时存储过程中某些复杂的查询语句发生“变化”(数据发生量级变化,结构、索引等发生变化),这时根据预编译的执行计划并不能达到最优查找的目的,
那么就需要指明该复杂的SQL语句在执行时重新编译(重新通过查询分析器分析,找出最优查找路径)。