优点

①重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
②减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
③安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
简单讲:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
有一点需要注意的是,一些网上盛传的所谓的存储过程要比sql语句执行更快的说法,实际上是个误解,并没有根据,包括微软内部的人也不认可这一点,所以不能作为正式的优点,希望大家能够认识到这一点。

存储过程缺点

1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4: 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。

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

  1. C#调用sql存储过程

    使用存储过程的优点和缺点 优点 1.降低网络传输数据量:通过存储过程的名称和参数传递即可调用执行,不用传输sql语句. 2.执行效率高:sqlserver会事先将存储过程编译成可执行的二进制代码,运行 ...

  2. DDIA读书笔记 | 第七章:事务

    文章目录 前言 一.事务的相关概念 1.1 ACID含义 1.2 单对象和多对象操作 简介 1.2.1 单对象写入 1.2.2 多对象事务的需求 1.2.3 处理错误和终止 二.弱隔离级别 2.1 读 ...

  3. 简述mysql的存储的优点_MySQL 存储过程 优点和缺点有哪些?

    存储过程的优点主要包括以下几点: 第一点,性能提高.这是相对于不适用存储过程来说的,因为存储过程在创建的时候就编译好了,而后每次调用都不会再次编译,这相对于传统的SQL语句中每次调用都需要编译的情况来 ...

  4. derby的优点和缺点

    Derby优点和缺点 概述: Derby是一个完全用java编写的数据库,非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用. 具体如下: ...

  5. 机器学习算法的优点和缺点总结

    机器学习算法的优点和缺点总结 1.正则化算法(Regularization Algorithms) 它是另一种方法(通常是回归方法)的拓展,这种方法会基于模型复杂性对其进行惩罚,它喜欢相对简单能够更好 ...

  6. hql调用mysql存储过程_hibernate调用mysql存储过程

    在mysql中创建两个存储过程,如下: 1.根据id查找某条数据: 1 CREATE PROCEDURE `findEmpById`(IN id INTEGER(11))2 begin3      s ...

  7. mysql 分号 存储过程_MySql 存储过程

    自动增长列.字段值唯一性约束 create table aa( id int auto_increment primary key, sname varchar(32) unique ); inser ...

  8. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码

    mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...

  9. oracle 存储过程 状态,查看ORACLE中正在运行的存储过程 | 学步园

    1.如何查看ORACLE中正在运行的存储过程 select owner,name from v$db_object_cache where type like '%PROCE%' and locks ...

最新文章

  1. 使用Python操作MySQL数据库
  2. 视觉SLAM总结——LSD SLAM中关键知识点总结
  3. 笔记本触摸板滑动(双指滑动)太快怎么设置?
  4. 网络优化实践探索文章
  5. Ubuntu虚拟机磁盘扩容+VM虚拟机开机多出1分30秒的解决方案(终极教程)
  6. 幽默:程序员背后的心酸日常,你懂多少?
  7. CENTOS7 修改 网卡名称为eth0的配置方法
  8. CSDN markdown编辑器 页面内跳转目录
  9. Clojure 学习入门(8)- 连接mongodb
  10. 云创大数据荣获2018年度南京白下高新园区统计工作先进单位
  11. c++builder Form重载WindowProc、WndProc 截获消息
  12. mysql 内存表 限制_MySQL内存表的弊端
  13. 蓝牙耳机测试软件apk_蓝牙5.0手机如何测试检测分辨?这款免费APP帮大忙
  14. 云计算与大数据应用技术————21大数据2021142247537刘新敏
  15. Jquery实现简单轮播图效果
  16. activeMQ启动失败报错illegal character in hostname at index
  17. Pygame实战:BOOM 这有一款超刺激的扎气球游戏等你来玩~
  18. mac 查看端口_交换机端口对应的mac地址与IP地址
  19. [HDU1512]Monkey King(可并堆)
  20. Niagara程序入门

热门文章

  1. 扫地机器人作文说明文提纲_扫地机器人说明文800字
  2. vue中使用axios请求数据过程
  3. iOS 获取手机IP地址
  4. 通过深度学习+TensorFlow.js对蒙娜丽莎进行动画处理
  5. SGU 102(欧拉函数)
  6. APP专项测试:流量测试
  7. Java数据结构链表面试题 作者:哇塞大嘴好帥(哇塞大嘴好帅) --持续更新
  8. Android发展简报
  9. 互联网快讯:极米多款产品获好评;摩尔线程与同方计算机达成战略合作;爱立信起诉苹果侵权其5G专利权
  10. Fragment中使用toolbar