MySQL的存储过程(stored procedure)和函数(stored function)统称为stored routines,是否应该采用存储过程在文章Business Logic: To Store or not to Store that is the Question?中进行了详细分析和讨论。存储过程和函数的区别的简要说明参见Stored procedure vs. function。归纳如下:
1. 函数只能通过return语句返回单个值或者表对象。而存储过程不允许执行return,但是通过out参数返回多个值。
2. 函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。
3. 函数限制比较多,[size=small]比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少
4. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
5. 当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。Procedure cache中保存的是执行计划 (execution plan) ,当编译好之后就执行procedure cache中的execution plan,之后SQL SERVER会根据每个execution plan的实际情况来考虑是否要在cache中保存这个plan,评判的标准一个是这个execution plan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。[/size]
分享到:
相关推荐
主要介绍了Mysql存储过程和函数的区别,需要的朋友可以参考下
Mysql存储过程和函数
mysql存储过程,存储函数练习,里面有详细代码,供大家参考
mysql 存储过程 ,存储函数的调用示例
MySQL实验报告5(存储过程与函数)(1)(1).pdf
第11章MySQL存储过程与函数.docx
MySql中创建存储过程及函数的方法,并就创建存储过程和函数的异同,对各种数据库进行了比较。
mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的结构: mysql> desc orders; +----------------+-------------+------+-----+--------...
JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip
mysql存储过程和函数(超经典)个人总结,本人总结了mysql存储过程极其用到的函数,实用!
第11章MySQL存储过程与函数.pdf第11章MySQL存储过程与函数.pdf第11章MySQL存储过程与函数.pdf第11章MySQL存储过程与函数.pdf第11章MySQL存储过程与函数.pdf第11章MySQL存储过程与函数.pdf第11章MySQL存储过程与函数....
Mysql手册20-存储过程和函数,有详细的存储过程和函数的介绍,是初学者很好的学习资料
主要帮助大家学习理解MySQL存储过程和函数,感兴趣的小伙伴们可以参考一下
本文实例讲述了MySQL存储过程的异常处理方法。分享给大家供大家参考。具体如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc -> (p_first_name VARCHAR(30), -> p_last_name VARCHAR(30)...
mysql+零基础+mysql存储函数以及函数过程知识点
MySQL数据库函数,触发器,存储过程的视频课程,通俗易懂
存储过程和函数的区别在于函数必须有返回值,而存储过程没有,存储过程的参数可以使用IN、OUT、INOUT类型,而函数的参数只能是IN类型的。如果有函数从其他类型的数据库迁移到MySQL,那么可能因此需要将函数改造成...
Mysql 存储过程,函数,临时表 存储过程包括输入返回,可供项目中遇到难题的人解决一下,我曾为此费了好大精力,最后总结出来共大家分享