`
苦行僧_83890
  • 浏览: 948 次
文章分类
社区版块
存档分类
最新评论

对存储过程的理解

阅读更多

在IT行业,编程语言层出不穷,旧的还没精通,新的开发语言就流出来了,真让人身心疲惫,唯一让人感到欣慰的是数据库,虽然有多种数据库DB2,Oracle,Mysql 等等,但是SQL语言只是相差甚微。今天我们来简单的总结下数据库里面的存储过程。

首先我们来几个简单的sql 预热下,

比如来个学生表student(id,name,age)

SELECT * FROM student  或者 SELECT name,age from student;

 

INSERT INTO student  VALUES (1,'zhangsan',8 ) 或者INSERT INTO table_student  (id, name,age) VALUES (2,'lisi',11);

 

UPDATE student SET name = 'wangwu' WHERE id = 1;

 

DELETE FROM studentWHERE id= 1

删除所有

DELETE FROM student

DELETE * FROM student

 

 

以上是简单的4条sql语句,按照我们正常的逻辑,假如我们需要update一条语句,然后显示出最新的信息,我们需要创建俩次数据库连接来执行一次update和一次select。增加了数据库的访问次数。数据库承担了更多的压力。这时候如果我们用存储过程就好多了。我们创建一个存储过程,然后在存储过程里面先执行更新然后在把最新的反馈给客户。同样的功能,用数据库明显效率会好很多。通过这个小李子,简单的说,存储过程就是将各个小sql 放到一起执行了。然后执行的过程中,还可以加点你想加的逻辑。

 

我们简单的说下存储过程的好处,说的不对,或者说的少了,还请大神多加指点;

1.我们都知道,每次执行一条sql 语句,都需要优化器进行优化编译,重新对sql进行重写。然后执行。存储过程则不同,存储过程是创建的时候编译一次,如果不改动它,也仅仅一次。大大的提高了数据库的执行效率。

2.就是上面那个例子,需要多个操作,delete,update并且多个表相关的,我们需要写多个sql,多个数据库连接,如果换成存储过程,只需要一个数据库连接而已。同时也减少了流量不是。

3在存储过程里,可配置相应的访问权限,安全性比较高。

4。存储过程可以多次被调用,需要有业务需要在存储过程里改,改完后可直接laod到数据库。无需改其它配置文件。如果是sql,就得改相应的java代码和xml等。

5.存储过程会随着业务的增加或者减少而改变,但是改的sql也只是这一个存储过程,易于维护。对于sql 而言,你的sql意味着变得更大,如果是多条,还得要更仔细的把这些相关的sql放到一块。

 

世界上没有十全十美的东西,当然存储过程也不是万能的,它也有很多不方便的地方。现如今又有了大批大批的缓存技术存在。用存储过程的人更少了。我们来简单的说下存储过程的弊端

1.存储过程是可以带参数返回或者输入并且可以返回结果集。每当改了入参或者出参,或许新加游标或者减少游标的时候,就需要改动调用方。如果这个存储过程有几十甚至是上百的参数。这样改起来着实不容易。

2.在存储过程里可以写业务逻辑代替java 或者c++写业务逻辑。但是存储过程调试起来着实不方便,debug工具少之又少。没有java或者c++那么便利了。

3.这个是大家都知道的,可移植性了,基本是没什么一致性,写了就放在数据库里了。

4.大的存储过程在load的时候会有一段时间。这个时间内如果访问什么的,可能会造成问题。

 

总之用不用存储过程不是一定的,是工作情况而定。最后祝大家编程愉快。

 

 

 

 

 

分享到:
评论

相关推荐

    SQL Server存储过程

    在本实验中,我们将深入理解存储过程的工作机制,并通过实际操作学习如何编写和调用存储过程。 1. **无参存储过程** 无参存储过程通常用于执行固定的操作,例如查询所有数据或执行某些常规任务。在实验中,我们...

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

    这提供了对数据库操作的可视化体验,并强调了存储过程在数据操纵中的作用。 为了了解存储过程的详细信息,可以使用系统存储过程`sp_help`和`sp_helptext`。前者提供存储过程的基本信息,而后者显示其定义的源代码。...

    数据库的存储过程

    数据库的存储过程是数据库管理系统提供的一种预编译的SQL语句...理解并熟练运用存储过程,对于数据库设计和开发人员来说至关重要。通过不断实践和学习,我们可以更好地利用存储过程来解决实际问题,优化数据库应用。

    oracle存储过程解锁

    以下是对“oracle存储过程解锁”这一主题的深入解析。 ### 标题:“oracle存储过程解锁” #### 解析: 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理...

    数据库实验报告-存储过程、触发器

    通过这些实验步骤,学生能够深入理解存储过程和触发器的工作原理及其在实际数据库应用中的作用。同时,这些操作也展示了如何在数据库管理系统中编写和管理这些数据库对象,有助于提升数据库设计和管理能力。

    pb调用存储过程

    存储过程有多种优点,包括提高性能(因为预编译了SQL语句)、增强安全(可以限制对数据的访问)、简化复杂操作(如多个操作的事务处理)以及提供可重用的代码段。 总的来说,Pb调用存储过程是通过声明并执行存储...

    存储过程参数查看器存储过程助手

    总之,存储过程参数查看器和存储过程助手是数据库开发和管理不可或缺的工具,它们增强了对存储过程的理解和控制,促进了高效且安全的数据库操作。通过使用这些工具,开发人员和DBA能够更好地优化代码,提升性能,并...

    mysql存储过程教程

    - 可读性和维护性:如果存储过程过于复杂,可能难以理解和维护。 - 跨平台问题:不同数据库系统的存储过程语法可能有差异。 - 缓存问题:当存储过程修改后,可能需要清除查询缓存。 六、存储过程的其他特性 1. ...

    SQL存储过程试题及答案

    SQL存储过程试题及答案 SQL存储过程是数据库中的一种程序单元,能够完成特定的数据库操作。今天,我们将讨论三道关于SQL存储过程的试题,这些试题涵盖了...通过这些试题,我们可以更好地理解SQL存储过程的使用和应用。

    sqlserver存储过程解密工具

    总的来说,"sqlserver存储过程解密工具"是为了帮助开发人员在特定场景下理解并修改已加密的存储过程。但同时,我们也应该认识到,保护数据库的安全和尊重知识产权是每个专业人员的责任。在使用此类工具时,必须确保...

    存储过程扩展学习

    存储过程是数据库中预编译的SQL语句集合,它是一种可重复使用的...通过这些示例,我们可以理解存储过程在数据库管理和应用程序开发中的重要性,它们简化了数据库操作,提高了性能,同时提供了安全性和代码组织的便利。

    PostgreSQL 存储过程调试

    总结来说,调试PostgreSQL存储过程涉及多个层面,从简单的日志记录到复杂的源码调试,都需要对PostgreSQL有深入的理解。熟练掌握这些技巧,将有助于提升数据库应用的稳定性和性能。通过不断实践和学习,你可以成为一...

    学习sql存储过程的心得

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被预先编译并存储在数据库...每个压缩包文件可能包含了对这些知识点的深入讲解或实例,通过阅读和实践,你可以更深入地理解和应用SQL存储过程。

    存储过程学习文档

    ### 存储过程学习文档:深入理解SQL Server存储过程 #### 学习笔记概览 存储过程是SQL Server中一种预编译的SQL代码集合,它以特定的名称存储在数据库中,允许用户通过简单的调用来执行复杂的数据库操作。本文档...

    解密SQL Server2000存储过程(可以选择存储过程查询)

    存储过程是SQL Server 2000中的一个核心特性,是预编译的SQL语句集合,可以理解为数据库中的可执行程序。它们允许开发人员封装复杂的业务逻辑,提高代码复用性,降低网络流量,并提供一定程度的安全性。 1. **存储...

    Oracle存储过程返回结果集

    在Oracle数据库中,存储过程是一种预编译的SQL和PL/SQL代码集合,可以执行复杂的业务逻辑或数据处理任务。当需要从存储过程中返回多个结果时,通常会使用结果集。本篇将深入探讨如何在Oracle存储过程中创建并返回一...

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    这个插件的作用是修正设计工具对无参数存储过程的处理方式,避免在调用时出现不必要的"storeParameter1"参数提示。在实际操作中,你需要将这个插件正确地安装到帆软报表系统中。 安装插件的步骤通常包括以下几个...

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

    在SQL Server数据库中,分页查询是常见的操作,特别...总之,理解并实施高效的分页存储过程是数据库优化的关键一环。通过合理的设计和索引策略,我们可以显著提高大规模数据集的分页查询速度,从而提升整个系统的性能。

    用友r9知识存储过程

    本文将深入探讨用友R9中的存储过程,特别是涉及账务系统的部分,帮助读者理解其背后的逻辑和作用。 存储过程是一种预编译的SQL语句集合,它可以执行复杂的业务逻辑,并且在多次调用时能提供更好的性能。在用友R9中...

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    根据提供的文件内容,本篇实验报告主要围绕MySQL数据库中存储过程和函数的应用,涵盖了创建存储过程、函数、游标以及...通过这些内容,读者能够更好地理解MySQL数据库中存储过程和函数的高级用法,提高数据库编程能力。

Global site tag (gtag.js) - Google Analytics