`
身心不坚强
  • 浏览: 36233 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

为什么要用存储过程,什么时候用存储过程?

    博客分类:
  • DB
阅读更多

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

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

        笔者认为,存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。但是存储过程处理比较复杂的业务时比较实用。

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

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

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

        那么什么时候才可以用存储?对于数据量不是很大以及业务处理不是很复杂的小项目就无需要了么?
        错。

        存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:
        1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

        2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。

        3.存储过程可以重复使用,可减少数据库开发人员的工作量。

        4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

        一般来说,存储过程的编写比基本SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。经自已测试,一个有着十万条记录的表,通过php调用存储过程比通过PHP执行sql语句获取所有记录的时间,平均快0.4秒左右.

 

本文来自CSDN博客,出处:http://blog.csdn.net/defonds/archive/2009/07/15/4349922.aspx

分享到:
评论

相关推荐

    SQL存储过程SQL存储过程SQL存储过程

    存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程

    实验9 存储过程的创建和使用

    1.编写带输入参数的存储过程proc_St:在查询分析器中创建一个存储过程,要求输入学号和姓名-----即要求以学号(@SSno)和姓名(@SSname)为存储过程的输入参数(存储过程的参数名必须以@开头,每个参数都应当有数据...

    高效分页存储过程 高效分页存储过程

    sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程 sql 高效分页存储过程

    存储过程 存储过程概述 创建存储过程 执行存储过程

    存储过程概述 创建存储过程 执行存储过程 查看、重命名和删除存储过程 创建带有参数的存储过程

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用...

    birt调用存储过程

    5. 在BIRT中使用存储过程 5 调用返回单结果集的存储过程。 5 调用一个含有参数的存储过程,并且有输出参数。 6 调用含有RETURN参数的存储过程 7 调用返回游标的存储过程 7 调用返回多个结果集的存储过程 8...

    破解存储过程破解存储过程

    破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程破解存储过程

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    存储过程db2存储过程

    db2存储过程db2存储过程db2存储过程db2存储过程db2存储过程db2存储过程db2存储过程db2存储过程db2存储过程

    分页存储过程 分页存储过程 分页存储过程

    分页存储过程 分页存储过程 分页存储过程 sql代码

    用存储过程创建视图

    用存储过程创建视图用存储过程创建视图用存储过程创建视图用存储过程创建视图用存储过程创建视图

    db2 存储过程语法与实例

    db2 存储过程 db2 存储过程 db2 存储过程

    SQL Server中存储过程比直接运行SQL语句慢的原因

    1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的...

    java 调用存储过程

    java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程java 调用存储过程

    高效分页存储过程高效分页存储过程高效分页存储过程

    高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程高效分页存储过程

    oracle存储过程实例

    oracle 存储过程实例 oracle存储过程实例

    Sql Server 存储过程的导出导入.doc

    SqlServer存储过程的导出导入 近日在研究SQL的存储过程,这里我陆续将我在使用存储过程中碰到的问题及解决办法发布到网上,请各位大虾指正。 SqlServer存储过程的导出导入,网上相关资料特别少,经过摸索,这里写...

    SQLServer存储过程转为oracle存储过程的工具

    可以将SQL Server存储过程转为oracle存储过程的工具

    入门存储过程

    存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的 运算。 * 可保证数据的安全性和完整性。 # 通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全...

    存储过程教程

    7.使用SQL存储过程要特别注意的问题 1.sql存储过程概述 在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。就本质而言,触发器也是一种存储...

Global site tag (gtag.js) - Google Analytics