oracle存储过程的优缺点

news/2024/11/29 6:33:01/

定义:

存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在Oracle 中,若干个有联系的过程可以组合在一起构成程序包。

优点:

  1. 执行速度快:存储过程只在创建时进行编译,以后每次执行存储过程都不需要重新编译,而一般SQL语句没执行一次就需编译一次,所以使用存储过程可提高数据库的执行速度。
  2. 减少网络通信量:当对数据库进行复杂操作时,(如对多个表进行insert、update、select、delete时)可将这些复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序完成就是多条SQL语句,可能要多次连接数据库,而换成存储过程只需一次连接。
  3. 更强的适应性与复用性:增强了SQL语句的功能和灵活性
  4. 增强了使用的安全性:避免了sql注入,且使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
  5. 可以实现集中控制:当规则发生改变时,只需要修改存储过程就可以啦,便于现场维护。

缺点:

  1. 调试不是很方便:不能像代码一样debug调试,plsql中的测试功能可以查询到的中间数据仅限于一些变量
  2. 创建存储过程权限问题:需要用户具有存储过程相关权限
  3. 移植性问题(致命缺陷): 面向对象的思维在存储过程这毫无用武之地,两个很相似的功能在也需要两个存储过程,因为他们是互相独立的,可以互相调用,但是不能继承等面向对象的操作,这也就增加了代码量。不同数据库类型语法不同,需要迁移时,需要大量时间。

适用场景:

报表出表逻辑


http://www.ppmy.cn/news/1129279.html

相关文章

三个要点,掌握Spring Boot单元测试

单元测试是软件开发中不可或缺的重要环节,它用于验证软件中最小可测试单元的准确性。结合运用Spring Boot、JUnit、Mockito和分层架构,开发人员可以更便捷地编写可靠、可测试且高质量的单元测试代码,确保软件的正确性和质量。 一、介绍 本文…

Rust免杀 Shellcode加载与混淆2

前言 这是半年前我学习Rust和免杀时的一些记录,最近打开知识库看到了这篇半年前的笔记,并且发现我常逛的安全社区都比较少有人分享Rust以及Rust免杀的帖子,于是想着将这篇笔记分享出来供大家参考和指正。由于我写这篇文章时也刚刚开始接触Ru…

嵌入式Linux应用开发-第七章-RK3288和 RK3399的 LED驱动程序

嵌入式Linux应用开发-第七章-RK3288和 RK3399的 LED驱动程序 RK3288和 RK3399的 LED驱动程序7.3 RK3288和 RK3399的 LED驱动程序7.3.1 原理图7.3.1.1 fireflye RK3288的 LED原理图7.3.1.2 firefly RK3399的 LED原理图 7.3.2 所涉及的寄存器操作7.3.2.1 RK3288的 GPIO8_A1引脚7.…

23 Python的shutil模块

概述 在上一节,我们介绍了Python的argparse模块,包括:argparse模块中一些常用的类和函数。在这一节,我们将介绍Python的shutil模块。shutil模块是一个用于文件和文件夹操作的实用模块,它提供了一组用于处理文件和文件夹…

【青书学堂】 2023年第二学期 Bootstrap 前端界面框架技术(高起专) 作业

【青书学堂】 2023年第二学期 Bootstrap 前端界面框架技术(高起专) 作业 为了方便日后复习,青书学堂成人大专试题整理。 若有未整理的课程,请私信我补充,欢迎爱学习的同学们收藏点赞关注!文章内容仅限学习使用!&#x…

图像处理与计算机视觉--第五章-图像分割-霍夫变换

文章目录 1.霍夫变换(Hough Transform)原理介绍2.霍夫变换(Hough Transform)算法流程3.霍夫变换(Hough Transform)算法代码4.霍夫变换(Hough Transform)算法效果 1.霍夫变换(Hough Transform)原理介绍 Hough Transform是一种常用的计算机视觉图形检验方法,霍夫变换一…

mysql数据的备份和恢复

听歌 沛公 第一个欧,听的是沛公,唱的岂不是你我 文章目录 备份全量备份增量备份差异备份 mysql备份备份所有数据库备份制定的数据库备份多张表备份表结构备份表数据 恢复恢复所有数据 对应上面的第一个和第二个恢复表恢复表结构恢复表数据 备份 全量备份…

MySql的索引与算法-B+树索引

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! 前言 索引在实际应…