几个去 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
相关推荐
5. 在BIRT中使用存储过程 5 调用返回单结果集的存储过程。 5 调用一个含有参数的存储过程,并且有输出参数。 6 调用含有RETURN参数的存储过程 7 调用返回游标的存储过程 7 调用返回多个结果集的存储过程 8...
在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是数据库中的一个重要对象,它是存储在数据库中的一组完成特定功能的SQL语句集。它第一次编译后,...
1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...
2. 当对数据库进行复杂操作时(如对多个表进行 Update、Insert、Query、Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 3. 存储过程可以重复使用,减少数据库开发人员的工作量...
SAP HANA中的存储过程通常是用SQLScript编写的,这是一个专门用于SAP HANA的SQL扩展集,它允许开发人员执行复杂的数据处理操作。在SAP HANA中调试存储过程时,需要注意存储过程中的代码是顺序执行的,而不是并行执行...
用 Java 调用 Oracle 存储过程时,需要使用 JDBC 驱动程序来连接 Oracle 数据库,然后使用 CallableStatement 对象来调用存储过程。 在存储过程中做简单动态查询 在存储过程中,做简单动态查询需要使用 EXECUTE ...
在Delphi中调用Oracle数据库的存储过程是一项常见的任务,尤其对于那些需要与Oracle数据库进行深度交互的应用程序来说尤为重要。下面将详细介绍如何通过Delphi来调用Oracle数据库中的存储过程。 #### 一、环境配置...
然而,当存储过程中的参数变化导致执行计划不适用时,SQL Server可能会为每次不同的参数值生成新的执行计划,这称为“参数嗅探”(Parameter Sniffing)。如果生成的计划对特定参数值不最优,可能会导致执行效率降低...
4. **DataWindow对象**:如果你想要在DataWindow中使用存储过程,可以设置DataWindow的SQL源为存储过程,然后在适当的方法(如RowChange, Fetch等)中调用执行。 其次,关于**存储过程的创建**,在提供的描述中,...
DB2存储过程是一种在数据库管理系统中预编译的SQL代码集合,它允许开发人员封装复杂的业务逻辑和数据处理操作,并可以被多次调用。DB2作为一款强大的关系型数据库管理系统,其存储过程功能强大,提高了应用程序的...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...
2. 然后,我们使用解密算法对 imageval 记录进行解密,并将其还原为原始的存储过程。 3. 最后,我们可以使用还原后的存储过程来替换原始的加密存储过程。 解密存储过程的优点 使用解密存储过程可以带来以下优点: ...
什么时候需要用存储过程: 1. 在服务器上执行存储过程,可以改善应用程序的性能。这是因为服务器往往具有强大的计算能力和速度。 2. 避免把大量的数据下载到客户端,减少网络上的传输量。 系统存储过程: 1. sp_...
.PL/SQLDeveloper 调试存储过程需要 debug connect session 系统特权,如果用户权限不够,可以使用以下命令授予权限:用 sysdba 角色的用户名登录,使用如下命令 GRANT debug any procedure, debug connect session ...
SQL Server存储过程是一种预编译的SQL代码集合,它们允许数据库开发者封装复杂的业务逻辑和数据操作,提高数据库应用的性能和可维护性。然而,由于存储过程的源代码通常是不可见的,对于需要查看或修改这些过程的...
存储过程概述 创建存储过程 执行存储过程 查看、重命名和删除存储过程 创建带有参数的存储过程
存储过程是数据库中预编译的SQL语句集合,它是一种可重复使用的代码段,用于执行特定数据库操作。在SQL Server中,存储过程分为不同种类,包括用户定义的存储过程、系统存储过程、临时存储过程以及扩展存储过程。 1...
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用...
数据库的存储过程是数据库管理系统提供的一种预编译的SQL语句集合,它是数据库中的一个对象,可以被多次调用,从而提高数据访问的效率。在本文中,我们将深入探讨存储过程的基本理念、语法以及常见的实现方式,特别...