几个去 IBM 面试的兄弟回来抱怨:去了好几个不同的 IBM 项目组,几乎每个面试官问到数据库的时候都要问用没用过存储过程,烦人不?大家去面的程序员,又不是 DBA,以前的项目都没有用到存储,不照样运行的好好的?

存储过程真的那么重要吗,它到底有什么好处呢?

笔者认为,存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。

但是存储过程处理比较复杂的业务时比较实用。
比如说,一个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你用存储过程的话。就只有一次。从响应时间上来说有优势。
也就是说存储过程可以给我们带来运行效率提高的好处。
另外,程序容易出现 BUG 不稳定,而存储过程,只要数据库不出现问题,基本上是不会出现什么问题的。也就是说从安全上讲,使用了存储过程的系统更加稳定。

数据量小的,或者和钱没关系的项目不用存储过程也可以正常运作。mysql 的存储过程还有待实际测试。如果是正式项目,建议你用 sql server 或 oracle 的存储过程。数据与数据之间打交道的话,过程会比程序来的快的多。面试官问有没有用存储,实际上就是想知道前来面试的程序员到底做过数据量大的项目没。如果是培训出来的,或者小项目小公司出来的,对存储肯定接触的少了。

所以,要想进大公司,没有丰富存储过程经验,是不行的。

那么什么时候才可以用存储?对于数据量不是很大以及业务处理不是很复杂的小项目就无需要了么?
错。存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:
  1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
  2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
  3.存储过程可以重复使用,可减少数据库开发人员的工作量。
  4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

转载于:https://www.cnblogs.com/ok123/archive/2011/09/08/2171160.html

什么时候要用存储过程,存储过程的优点 .相关推荐

  1. 简述mysql的存储的优点_SQL存储过程简介及优点

    存储过程是SQL语言中的一种,在大型的数据库系统中,一系列为了达到某种特定功能的SQL语句.经过重新编译之后存储在数据库中,再通过指定的名字,并且提供参数来执行它. 一.SQL Server 存储过程 ...

  2. Oracle 存储过程定义和优点及与函数区别

    定义: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是 ...

  3. 【存储过程】MySQL存储过程/存储过程与自定义函数的区别

    ---------------------------存储过程-------------------- 语法: 创建存储过程: CREATE [definer = {user|current_user ...

  4. linux用call调存储过程,存储过程调用其他模式的存储过程需要注意的地方

    我在fzfw用户下用dbms_job包自动调度了其他2个模式下的存储过程的执行.fzfw是DBA用户.告警日志报错: Sun Aug  8 00:00:02 2010 Errors in file / ...

  5. mysql存储过程自定义结构体_(转)MySQL存储过程/存储过程与自定义函数的区别...

    转自:http://www.cnblogs.com/caoruiy/p/4486249.html 语法: 创建存储过程: CREATE[definer = {user|current_user}] P ...

  6. mysql存储过程和自定义函数_MySQL存储过程/存储过程与自定义函数的区别

    语法: 创建存储过程: CREATE[definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_paramet ...

  7. php动态数组的存储过程,存储过程(数组参数、for循环、拼凑的动态sql游标、merge into)...

    create or replace procedure SFGL_XF_ONE_ADD(p_njdm in varchar2, p_yxdm in varchar2, p_zydm in varcha ...

  8. dblink创建oracle存储过程,存储过程中 怎么建立dblink

    当前位置:我的异常网» Oracle开发 » 存储过程中 怎么建立dblink 存储过程中 怎么建立dblink www.myexceptions.net  网友分享于:2013-03-01  浏览: ...

  9. oracle sqlserver 存储过程,存储过程--oracle,sqlserver示例

    oracle版本 create or replace procedure test_procedure_002 as childTempId varchar(200) ; parentId varch ...

  10. SQL Server基础操作(此随笔仅作为本人学习进度记录七 !--存储过程)

    存储过程存储过程分为系统存储过程和自定义存储过程存储过程通过将处理数据的程序从客户端应用程序移动到服务器,存储过程是放在服务器上的,通过客户端下达指令调用存储过程的时候,这个过程是在服务器上发生的,自 ...

最新文章

  1. flutter中的路由跳转
  2. MFC改变对话框背景图片实例
  3. 前端学习(2872):Vue路由权限『前后端全解析』3
  4. PDF论文--字体未嵌入解决办法
  5. 服务器装系统怎样进bios设置,重装系统怎么进入bios设置界面?进入bios设置界面详细教程!...
  6. 汽车CAN 总线系统原理设计与应用 (一)
  7. TCC(TinyC)编译器汉化(中文编译器、汉语编程)之五:语法分析下
  8. 统计学+变异+变异系数
  9. 1024happyCTF
  10. 408计算机组成原理学习笔记——存储系统
  11. 微信后台 phxrpc (v0.8) 之 Timer(二)
  12. Linux终端不能显示表情符问题
  13. iPhone转Android体验,从苹果转安卓之后的一点体验,供大家参考
  14. 新装Win10全方面调优【彻底禁用Win10更新/防火墙/Defender/通知,任务栏优化等】
  15. Oracle - 锁
  16. 概率论——随机变量及其分布
  17. 鸿蒙系统能用wps吗,WPS Office
  18. 截图神器推荐 ShareX
  19. 魔力宝贝登录一直服务器无响应,魔力宝贝归来怎么提升战力?
  20. vba的change事件

热门文章

  1. 企业网络管理员如何有效封杀QQ
  2. 【Oracle】解决问题:pl/sql developer 小钥匙图标下拉框中oracle连接串不加粗显示
  3. 大规模业务技术架构设计与战术(架构师必看)
  4. Java 8 中的这个接口真好用!炸了!
  5. 又一个国内知名论坛,突然被全面叫停!
  6. IntelliJ IDEA For Mac 快捷键,够骚,速度收藏!
  7. Linux 运维必备的13款实用工具,拿好了~
  8. python 功能代码是什么_Python功能代码
  9. Linux中级之ansible配置(playbook)
  10. 一文让你秒懂互联网TCP/IP协议的深层含义