日期:2014-05-18  浏览次数:20564 次

小弟问个问题,为什么存储过程执行要比单个SQL语句块?
如题!

------解决方案--------------------
存储过程能够实现较快的执行速度。
如果某一操作包含大量的SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的执行计划。而批处理的SQL 语句在每次运行时都要进行编译和优化,因此速度相对要慢一些。

---------摘自百度知道
------解决方案--------------------
lz自己已经回答了,呵呵,存储过程在创建的时候就已经编译过了,直接执行的。而现写的sql语句则没次都要编译在执行。所以存储比语句快,这也是业内人士为什么用存储的原因呀,高效吗。
------解决方案--------------------
因为执行完一次后,以后再执行就使用第一次执行计划的最优缓存。
但是也不都是这样的,比如复杂点的存储过程(含有判断执行语句if...then...else等)就不一定快,以为执行计划在不同的条件下也许不是最优的。
------解决方案--------------------
5楼说的很详细,收藏了,谢谢
------解决方案--------------------
5楼的很给力,顶一个~!~!