oracle的存储过程优缺点

1.存储过程可以使得程序执行效率更高、安全性更好,因为过程建立之后 已经编译并且储存到数据库,直接写sql就需要先分析再执行因此过程效率更高,直接写sql语句会带来安全性问题,如:sql注入

2.建立过程不会很耗系统资源,因为过程只是在调用才执行。

3.存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。

4.使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用 (RPC) 处理服务器上的存储过程而提高性能。RPC 封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。

5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。

6.代码精简一致,一个存储过程可以用于应用程序代码的不同位置。

7.增强安全性:

a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;

b、提高代码安全,防止 SQL注入(但未彻底解决,例如,将数据操作语言--DML,附加到输入参数);

c、SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。

缺点就是:

1、大量的利用过程,会对服务器压力比较大。

转载于:https://www.cnblogs.com/zgq123456/p/9897107.html

oracle的存储过程优缺点相关推荐

  1. oracle发送邮件附件,oracle发送邮件存储过程:

    oracle发送邮件存储过程: create or replace procedure bsd_sendemail( p_receiver varchar2, p_sub varchar2, p_tx ...

  2. oracle怎么调报表,集智数据平台报表如何调用Oracle数据存储过程

    需要注意的是,当在单元格中用call函数调用存储过程时,执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个 数据集的数据来自存储过程.sql语句执行的时候要先编译,然后执行.存储过 ...

  3. 用.NET调用oracle的存储过程返回记录集

    最近做一个项目,为了提高数据库安全性,客户要求所有数据库操作都要放在存储过程.象一般的更新操作,返回一个值的,都比较容易实现.而要想返回记录集就比较麻烦,我在网上搜了一下,这方面的文章并不多.在此总结 ...

  4. oracle 9I 存储过程复制,使用ADO.NET访问Oracle 9i存储过程(上)_oracle

    本文讨论了如何使用 ADO.NET 访问 oracle 存储过程(称为 SQL 编程块)和函数(返回单个值的编程块). 您可以使用以下托管数据提供程序连接到 Oracle 数据库:Microsoft ...

  5. oracle的存储过程

    用了两年Oracle还没写过存储过程,真是十分惭愧,从今天开始学习Oracle存储过程,完全零起点,争取每日一篇学习笔记,可能开始认识的不全面甚至有错误,但坚持下来一定会有收获. 1. 建立一个存储过 ...

  6. oracle数据库存储过程中NO_DATA_FOUND不起作用解决

    oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...

  7. oracle ora-24247 ACL,ORACLE 11G 存储过程发送邮件(job),ORA-24247:网络访问被访问控制列表 (ACL) 拒绝...

    ORA-24247:网络访问被访问控制列表 (ACL) 拒绝 需要先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建访问控制列表(ACL), 再使用 DBMS_NETWO ...

  8. 如何在JAVA程序中使用Struct一次传入多条数据给Oracle的存储过程

    http://blog.csdn.net/dutguoyi/article/details/1879416 为了减少连接Oracle数据库的数量,需要将多条数据作为变量一次传入Oracle的存储过程中 ...

  9. 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)

    在本系列学习随笔中的第2节我们留下了2个问题,我们现在讨论在out参数中使用光标. 1.要在out参数中使用光标,我们需要申明一个包的结构,包的结构分为包头和包体,包头只负责申明,包体只负责实现.包头 ...

  10. oracle中调试存储过程,详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...

最新文章

  1. Android 观察系统中短信内容的变化(内容观察者)
  2. 基于Python的特征自动化选择:两行代码完成特征工程
  3. 原来带有python又装了一个anaconda有影响吗_anaconda python环境与原有python环境的坑...
  4. P4878 [USACO05DEC]Layout G
  5. [机器学习笔记]Note6--神经网络:表达
  6. Abstract 的使用
  7. 查看服务器文件夹,远程查看服务器文件夹内的文件夹
  8. python count函数用法 comm_Python学习第六天课后练习案例 (主要针对的内容是python函数的定义和使用)...
  9. dbmsjobs记录表 oracle_oracle数据库定时任务dbms_job
  10. php 编译记录文件,php-7.1编译记录
  11. 【真的很先进】阿里云在2018-KVM Forum上分享的动态迁移实践
  12. 2.10.PHP7.1 狐教程-【PHP 函数】
  13. SAP物料编码- -
  14. VMware esxi6.7U3B安装镜像集成Realtek8168网卡驱动
  15. cve_2019_0708复现踩坑
  16. 联想y450安装黑苹果
  17. 然之协同 PHP,然之协同办公系统5.2开源版官方下载
  18. 如何理解移动端设计稿的计算问题(移动端屏幕适配和px转rem)
  19. 微时刻视频创意小视频广告怎么制作下载?
  20. 干货集中营(分享)-每日分享妹子图和技术干货

热门文章

  1. 应用机器学习(六):决策树
  2. MATLAB矩阵生成、引用
  3. acm路上的一些感想
  4. 23种设计模式(十六)接口隔离之中介者
  5. Linux 系统性能分析工具图解读
  6. php查找之二分查找
  7. 输出匹配项:grep
  8. js 中call,apply,bind的区别
  9. table中td内容过长自动换行
  10. Cesium应用篇:3控件(1)Clock