精华内容
下载资源
问答
  • 2019-12-18 14:40:11

    存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

    优点:

    1、重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

    2、减少网络流量:存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

    3、安全性:参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

    扩展资料:

    存储过程的缺点:

    1、更改比较繁琐:如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐。

    2、可移植性差:由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则需要将业务逻辑封装在不特定于 RDBMS 的中间层中。

    参考资料来源:百度百科-存储过程

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

    存储过程的优点主要包括以下几点:

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

    第二点,重用性强。存储过程使用名字即可使用,也就是传说中的“一次编写,随便调用”。这样不仅提高了重用性,还减少了出错的几率,也会加快开发速度,可以说是一件非常好的事情。

    第三点,减少网络流量。这一点对于小数据量的时候一般体现不出来,那么当数据量较大的时候,我们会发现由于使用存储过程比使用SQL语句会使用更少的字节数,因此它会降低传输的数据量。

    第四点,安全性提高。由于存储过程也可以使用权限控制,而且参数化的存储过程可以防止SQL注入攻击,也在一定程度上保证了安全性。

    第五点,灵活性增强。由于存储过程可以使用流程控制语句来编写,导致它有着很强的灵活性,可以根据实际情况来执行不同的SQL语句,而不是只能单纯的简单的执行命令。而且该存储过程还可以修改其逻辑而其他部分不用改变,也就是说,我们的表的结构改变了,我们只需要修改相应的存储过程即可,我们的Java或者PHP等程序不需要改变。

    第六点,当业务复杂的时候,存储过程会减少工作量,为什么呢,原因很简单,如果我们不适用存储过程,那么就会导致我们先从数据库中取出来数据,然后经过计算,再放入到数据库中,这个开销还是蛮大的,这中间的开销包括我们的Java或者PHP程序连接数据库获取结果集等若干操作,如果我们使用了存储过程,那么就没有那么多事了,直接在mysql内就搞定了。

    缺点:

    第一点,工作量加大。这里并不是说我们把程序该做的事让mysql去做不好,而是mysql本身并没有很像样的IDE来开发我们的存储过程,我们很多时候还是需要手写,这样就会比较麻烦,而且存储过程的调试也是一个问题,没有很像样的调试工具。

    第二点,优势不明显。运行速度上,对于大多数的语句缓存来说,编译sql的时间开销并不是很大,但是执行存储过程还需要检查权限等一些其他开销,所以,对于很简单的sql,存储过程并没有很大优势。

    第三点,赘余功能。对web程序来说,我们连接数据库的用户往往就是同一个,不需要太多的安全机制,所以,对于安全上的检测看上去很好,实际上优点多余。

    第四点,小型程序完全无用。对于小型web应用来说,它的使用价值就更小了,反而会拖累开发进度。

    第五点,对于运维上。当我们的程序要更换数据库的时候,它的移植性相对于不适用存储过程要复杂一些,对于维护上,由于是在db端,因此比server端的程序更好维护一些。

    展开全文
  • 存储过程优缺点分析

    2020-12-15 13:34:47
    存储过程的优缺点: 存储过程优点: 1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。 2.执行计划(存储过程在首次运行时将被编译,...
  • 存储过程

    2020-12-14 11:32:31
    3、存储过程优点: 1.允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。 2.如果某次操作需要执行多次SQL ,使用存储过程比单纯SQL语句执行要快。 3.可重复使用,能减少网络流量,还具有安全性...
  • 本文给大家详细介绍了sqlserver的存储过程,包括存储过程的概念、优缺点、系统存储过程、用户自定义存储过程等方面的内容了,需要的小伙伴可以参考下。
  • 存储过程的优缺点

    千次阅读 2019-05-20 16:21:33
    在维护公司的几年前的一个项目,虽说不上是历史悠久,但也有些年头了,采用三层架构,加上存储过程的这么一个老的架构,本来这个架构也没什么问题,大部分系统都是这么干的,但是由于这个系统存储过程被滥用的问题,...

     

        在维护公司的几年前的一个项目,虽说不上是历史悠久,但也有些年头了,采用三层架构,加上存储过程的这么一个老的架构,本来这个架构也没什么问题,大部分系统都是这么干的,但是由于这个系统存储过程被滥用的问题,后期维护的时候,麻烦事就来了,任何涉及到数据库的调整,都得存储过程,实体类,SQL操作等相关的地方,都得改一通。可以说被存储过程伤的很深啊,所以今天就来总结下存储过程的优缺点。

      优点

      1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通sql快。    

      2.  减少网络传输:存储过程直接就在数据库服务器上跑,所有的数据访问都在数据库服务器内部进行,不需要传输数据到其它服务器,所以会减少一定的网络传输。但是在存储过程中没有多次数据交互,那么实际上网络传输量和直接sql是一样的。而且我们的应用服务器通常与数据库是在同一内网,大数据的访问的瓶颈会是硬盘的速度,而不是网速。

      3. 可维护性:的存储过程有些时候比程序更容易维护,这是因为可以实时更新DB端的存储过程。  有些bug,直接改存储过程里的业务逻辑,就搞定了。 

      4. 增强安全性:提高代码安全,防止 SQL注入。这一点sql语句也可以做到。

      5. 可扩展性:应用程序和数据库操作分开,独立进行,而不是相互在一起。方便以后的扩展和DBA维护优化。

      缺点  

       1. SQL本身是一种结构化查询语言,但不是面向对象的的,本质上还是过程化的语言,面对复杂的业务逻辑,过程化的处理会很吃力。同时SQL擅长的是数据查询而非业务逻辑的处理,如果如果把业务逻辑全放在存储过程里面,违背了这一原则。

       2. 如果需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新调用,等等,这时候估计会比较繁琐了。

       3. 开发调试复杂,由于IDE的问题,存储过程的开发调试要比一般程序困难。     

       4. 没办法应用缓存。虽然有全局临时表之类的方法可以做缓存,但同样加重了数据库的负担。如果缓存并发严重,经常要加锁,那效率实在堪忧。

       5. 不支持群集,数据库服务器无法水平扩展,或者数据库的切割(水平或垂直切割)。数据库切割之后,存储过程并不清楚数据存储在哪个数据库中。

      总结

       1. 适当的使用存储过程,能够提高我们SQL查询的性能,

       2. 存储过程不应该大规模使用,滥用。

       3. 随着众多ORM 的出现,存储过程很多优势已经不明显。   4. SQL最大的缺点还是SQL语言本身的局限性——SQL本身是一种结构化查询语言,我们不应该用存储过程处理复杂的业务逻辑——让SQL回归它“结构化查询语言”的功用。复杂的业务逻辑,还是交给代码去处理吧。

    原文地址

    展开全文
  • 使用存储过程优点

    2018-04-17 23:08:00
    存储过程可以用流控制语句编写,很强的灵活性,可以完成复杂的判断和相关运算; 2)相对稳定,存储过程一旦调试完成通过后就能够稳定运行,这与各个业务在一段时间内是相对稳定是匹配的; 3)耦合性低,存储...

    当我们业务处理的逻辑不太复杂,且需要访问的数据量是海量的时候,建议使用sp对数据做操作而不是程序。

    原因:

    1.从耗能的角度:

    海量的数据处理不管放在sp里面还是代码里面,都会增加服务器的负载。放在sp里面处理,会增加其所在数据库服务器磁盘IO的压力;放在代码里面处理,需要传到应用服务器处理,势必会增加网络IO压力,进而可能影响同一网络的其他application的运行。相比之下,放在sp里面处理的代价比较小。

    2.从开发的角度:

    1)代码编写方便,易重构。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和相关运算;

    2)相对稳定,存储过程一旦调试完成通过后就能够稳定运行,这与各个业务在一段时间内是相对稳定是匹配的;

    3)耦合性低,存储过程大大减少了业务系统与数据库的交互,一定程度上降低了业务系统与数据库的耦合。

    3.从性能的角度:

    1)执行率高,如果有几千上亿条数据需要计算总额,如果用SQL实现就是聚合求平均,有索引的情况下会很快返回结果。(相对于程序代码来说)

    4.从运维的角度 : 

    1)将逻辑运算写在sp里面进行处理,当有data issue的时候,维护人员能够查看相关的sql语句进行初步的trouble shooting;

    2)DBA能够查看其性能并进行调优。

     

    转载于:https://www.cnblogs.com/Xbingbing/p/8870748.html

    展开全文
  • 事务是保证多个SQL语句的原子型的...尤其对于较为复杂的逻辑,减少了网络流量之间的消耗,另外比较重要的一点是存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一
  • 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需要创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。 优点 1)存储过程是预编译过的...
  • 存储过程优点

    2014-09-30 15:54:00
    存储过程优点
  • 存储过程优点 #1. 用于替代程序写的SQL语句,实现程序与sql解耦 #2. 可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器 #3. 执行速度快,存储过程经过编译之后会比单独一条一条执行要快 #4...
  • 和PL/SQL程序相比,存储过程有很多优点,具体归纳如下: * 存储过程和函数以命名的数据库对象形式存储于数据库当中。存储在数据库中的优点是很明显的,因为代码不保存在本地,用户可以在任何客户机上登录到数据库,...
  •  竟然他是方法那么他类似的方法名,方法要传递的变量和返回结果,所以存储过程有存储过程有存储过程参数也返回值。  存储过程优点:  存储过程的能力大大增强了SQL语言的功能和灵活性。  可保证数据...
  • 竟然他是方法那么他就类似的方法名,方法要传递的变量和返回结果,所以存储过程有存储过程有存储过程参数也返回值。 存储过程优点:  存储过程的能力大大增强了SQL语言的功能和灵活性。 1.可保证数据的安全...
  • 存储过程功能的优点  为什么要使用存储过程?以下是存储过程技术的几大主要优点:  预编译执行程序。SQL Server只需要对每一个存储过程进行一次编译,然后就可以重复使用执行计划。这个特点通过重复调用存储程序极...
  • 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。 2、降低网络开销 存储过程调用时只需用提供存储过程名和...
  • 存储过程:使用一个名称存储的预编译T-SQL语句和流程控制语句的集合 由数据库开发人员或数据库管理员编写 用来执行管理任务或应用复杂的业务规则 优点:执行速度更快 首次运行时,进行优化和编译得到执行计划并...
  •  存储过程优点如下: 重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。提高性能。存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,...
  • 存储过程的概念  存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数...存储过程优点  A、 存储过程允许标准组件式编程  存储过程创建后可
  • 存储过程和函数的区别是什么?  答:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。  而函数通常是数据库已经定义的方法,它...  存储过程优点  它是由PL/S
  • 存储过程 就是一些编译好了的SQL语句,这些SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后给这些代码块取一个名字,在用到这个功能的时候调用即可。 存储过程详解参考: ...
  • 存储过程优点三.SQL注入1.SQL注入概念2.如何防止SQL注入(1)不要使用动态SQL(2)不要将敏感数据保留在纯文本中(3)限制数据库权限和特权(4)避免直接向用户显示数据库错误(5)使用Web应用程序防火墙(WAF)(6)将数据库...
  • 存储过程优点4.1.2. 存储过程的缺点4.2. 创建存储过程 create procedure4.2.1. 参数 in、out、inout4.3. 调用存储过程 call4.4. 查看存储过程4.4.1. 查看存储过程的状态4.4.2. 查看存储过程
  • 1 存储过程 ...存储过程可以用流程控制语言编写,很强的灵活性,可以完成复杂的判断和较复杂的运算。 2.良好的封装性 存储过程被创建后,可以在程序中被多次调用,而不必担心重写编写该存储过程的sql语
  • 我们大家都知道MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程
  • 一、 存储过程的概念,优点,语法 在写笔记之前,首先需要整理好这些概念性的东西,否则的话,就会在概念上产生陌生或者是混淆的感觉。 概念:将常用的或者是很复杂的工作,预先利用SQL语句写好并用一个指定的名称...
  • 存储过程优点 1、执行一次后,会将生成的二进制代码驻留缓冲区(便于下次执行),提高执行效率 2、SQL语句加上控制语句的集合,灵活性高 3、在服务器端存储,客户端调用时,降低网络负载 4、可多次重复被调用,可...
  • 老大说不要在项目中使用存储过程

    千次阅读 多人点赞 2022-02-09 15:03:12
    作为技术人,我不愿看到因为xxx问题而直接拒接xxx技术这种情况,该篇文章是网上多方技术人针对“存储过程到底是值不值得用”这个问题的一些见解

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 617,234
精华内容 246,893
关键字:

存储过程有哪些优点