精华内容
下载资源
问答
  • MySql的存储过程的优点与缺点

    千次阅读 2019-05-08 14:10:59
    MySql的存储过程的优点与缺点一、存储过程优点二、存储过程的弊端三、总结 总结下使用存储过程的优缺点 一、存储过程优点 存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁...

    总结下使用存储过程的优缺点

    一、存储过程优点

    存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并存储起来,以后当需要数据库提供相同的服务时,只需再次执行该存储过程。

    1.具有更好的性能

    存储过程是预编译的,只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,因此使用存储过程可以提高数据库执行速度。

    2.功能实现更加灵活

    存储过程中可以应用条件判断和游标等语句,有很强的灵活性,可以直接调用数据库的一些内置函数,完成复杂的判断和较复杂的运算。

    3.减少网络传输

    复杂的业务逻辑需要多条 SQL 语句,当客户机和服务器之间的操作很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会减少,降低了网络负载。

    4.具有更好的安全性

    (1)数据库管理人员可以更好的进行权限控制,存储过程可以屏蔽对底层数据库对象的直接访问,使用 EXECUTE 权限调用存储过程,无需拥有访问底层数据库对象的显式权限。

    (2)在通过网络调用过程时,只有对执行过程的调用是可见的。无法看到表和数据库对象名称,不能嵌入SQL 语句,有助于避免 SQL 注入攻击。

    二、存储过程的弊端

    1.架构不清晰,不够面向对象

    存储过程不太适合面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,业务逻辑在存储层实现,增加了业务和存储的耦合,代码的可读性也会降低,

    2.开发和维护要求比较高

    存储过程的编写直接依赖于开发人员,如果业务逻辑改动较多,需要频繁直接操作数据库,大量业务降维到数据库,很多异常不能在代码中捕获,出现问题较难排查,需要数据库管理人员的帮助。

    3.可移植性差

    过多的使用存储过程会降低系统的移植性。在对存储进行相关扩展时,可能会增加一些额外的工作。

    三、总结

    存储过程与SQL语句如何抉择?

    架构设计没有绝对,只有在当前的场景下最合适的。

    普通的项目开发中,不建议大量使用存储过程,对比SQL语句,存储过程适用于业务逻辑复杂,比较耗时,同时请求量较少的操作,例如后台大批量查询、定期更新等。

    (1)当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时可以考虑应用存储过程

    (2)在一个事务的完成需要很复杂的商业逻辑时可以考虑应用存储过程

    (3)比较复杂的统计和汇总可以考虑应用后台存储过程

    展开全文
  • 如果你把所需要执行操作代码写在程序当中,那么要做一些小修改,也要对程序做修改并重新编译,对于用户来讲,这个时候就需要对程序加以深度测试(你说只修改了一点点,但是用户不会为你一句话而冒风险),存储过程相对...

    优点:

    1.维护方便,如果你把所需要执行的操作代码写在程序当中,那么要做一些小修改,也要对程序做修改并重新编译,对于用户来讲,这个时候就需要对程序加以深度测试(你说只修改了一点点,但是用户不会为你的一句话而冒风险的),存储过程相对来讲就简单得多,毕业逻辑上分离出来了,即使要进行审核,成本也远比程序要低得多;
    2.重用性,一个设计好的存储过程,任何符合其输入和输出的程序都可以共用,同样也改善了维护工作,如果有10个程序要用到这个存储过程,那要做些修改,自然修改一个存储过程所花费的成本比程序要低得多;
    3.分工的明确化.存储过程如果设计得当,就可以通过一个中间的适配器(Adapter)来调用,如此在将来进行数据库的迁移等,就可以把相应的工作交给具体的熟悉相关数据库等业务的人员,而不是所有的开发人员都要进行了解.就好比MSSQL/Oracle/DB2类似的,如果数据库操作脚本写在程序当中,那么迁移的工作量将会是所有可能的程序.如果是通过存储过程,那就可以交给相应的DBA等来完成;
    4.存储过程的预编译,可能性使得语句的执行更优化,特别是对于类似Oracle等具备某些高级优化能力的,那么包括其既定的执行计划等可以带来相当的性能提升;
    5.对于需要多次访问数据的复杂操作.如果写在程序当中,那么就需要不断的或者大量的提取数据库当中的数据到程序当中进行运算,而如果是使用存储过程,那么就减少了应用程序与数据库的交互次数,如此的消耗明显要低得多.

     

    缺点:

    .可移植性差 
    由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。

    展开全文
  • 总结下使用存储过程的缺点一、存储过程优点存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并存储起来,以后当需要数据库提供相同...

    总结下使用存储过程的优缺点

    一、存储过程优点

    存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并存储起来,以后当需要数据库提供相同的服务时,只需再次执行该存储过程。

    1.具有更好的性能

    存储过程是预编译的,只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,因此使用存储过程可以提高数据库执行速度。

    2.功能实现更加灵活

    存储过程中可以应用条件判断和游标等语句,有很强的灵活性,可以直接调用数据库的一些内置函数,完成复杂的判断和较复杂的运算。

    3.减少网络传输

    复杂的业务逻辑需要多条 SQL 语句,当客户机和服务器之间的操作很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会减少,降低了网络负载。

    4.具有更好的安全性

    (1)数据库管理人员可以更好的进行权限控制,存储过程可以屏蔽对底层数据库对象的直接访问,使用 EXECUTE 权限调用存储过程,无需拥有访问底层数据库对象的显式权限。

    (2)在通过网络调用过程时,只有对执行过程的调用是可见的。无法看到表和数据库对象名称,不能嵌入SQL 语句,有助于避免 SQL 注入攻击。

    二、存储过程的弊端

    1.架构不清晰,不够面向对象

    存储过程不太适合面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,业务逻辑在存储层实现,增加了业务和存储的耦合,代码的可读性也会降低,

    2.开发和维护要求比较高

    存储过程的编写直接依赖于开发人员,如果业务逻辑改动较多,需要频繁直接操作数据库,大量业务降维到数据库,很多异常不能在代码中捕获,出现问题较难排查,需要数据库管理人员的帮助。

    3.可移植性差

    过多的使用存储过程会降低系统的移植性。在对存储进行相关扩展时,可能会增加一些额外的工作。

    三、总结

    存储过程与SQL语句如何抉择?

    架构设计没有绝对,只有在当前的场景下最合适的。

    普通的项目开发中,不建议大量使用存储过程,对比SQL语句,存储过程适用于业务逻辑复杂,比较耗时,同时请求量较少的操作,例如后台大批量查询、定期更新等。

    (1)当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时可以考虑应用存储过程

    (2)在一个事务的完成需要很复杂的商业逻辑时可以考虑应用存储过程

    (3)比较复杂的统计和汇总可以考虑应用后台存储过程

    展开全文
  • 总结下使用存储过程的缺点 一、存储过程优点 存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并存储起来,以后当需要数据库提供...

    总结下使用存储过程的优缺点 
    一、存储过程优点 
    存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并存储起来,以后当需要数据库提供相同的服务时,只需再次执行该存储过程。

    1.具有更好的性能

    存储过程是预编译的,只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,因此使用存储过程可以提高数据库执行速度。

    2.功能实现更加灵活

    存储过程中可以应用条件判断和游标等语句,有很强的灵活性,可以直接调用数据库的一些内置函数,完成复杂的判断和较复杂的运算。

    3.减少网络传输

    复杂的业务逻辑需要多条 SQL 语句,当客户机和服务器之间的操作很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会减少,降低了网络负载。

    4.具有更好的安全性

    (1)数据库管理人员可以更好的进行权限控制,存储过程可以屏蔽对底层数据库对象的直接访问,使用 EXECUTE 权限调用存储过程,无需拥有访问底层数据库对象的显式权限。

    (2)在通过网络调用过程时,只有对执行过程的调用是可见的。无法看到表和数据库对象名称,不能嵌入SQL 语句,有助于避免 SQL 注入攻击。

    二、存储过程的弊端

    1.架构不清晰,不够面向对象

    存储过程不太适合面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,业务逻辑在存储层实现,增加了业务和存储的耦合,代码的可读性也会降低,

    2.开发和维护要求比较高

    存储过程的编写直接依赖于开发人员,如果业务逻辑改动较多,需要频繁直接操作数据库,大量业务降维到数据库,很多异常不能在代码中捕获,出现问题较难排查,需要数据库管理人员的帮助。

    3.可移植性差

    过多的使用存储过程会降低系统的移植性。在对存储进行相关扩展时,可能会增加一些额外的工作。

    三、总结 
    存储过程与SQL语句如何抉择?

    架构设计没有绝对,只有在当前的场景下最合适的。

    普通的项目开发中,不建议大量使用存储过程,对比SQL语句,存储过程适用于业务逻辑复杂,比较耗时,同时请求量较少的操作,例如后台大批量查询、定期更新等。

    (1)当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时可以考虑应用存储过程

    (2)在一个事务的完成需要很复杂的商业逻辑时可以考虑应用存储过程

    (3)比较复杂的统计和汇总可以考虑应用后台存储过程

    展开全文
  • 存储过程是一组予编译SQL语句 优点  1. 运行速度:对于很简单sql,存储过程没有什么优势。对于复杂业务逻辑,因为在存储过程创建时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在...
  • 应用程序中函数过程类似,存储过程可以通过名字来调用,而且它们同样有输入参数和输出参数。  根据返回值类型不同,我们可以将存储过程分为三类:返回记录集的存储过程,返回数值的存储过程(也可以称为...
  • 什么是存储过程函数有什么区别和联系?
  • 存储过程的缺点

    2020-03-22 15:10:05
    2:当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来数据库提供事务处理结合一起使用。 3:存储过程可以重复使用,可减少数据库开发人员工作量 4:...
  • sQL存储过程的缺点

    千次阅读 2017-01-04 11:33:19
    目前具体的项目中没有使用sql存储过程,都用的封装好的框架,简单说下存储过程的缺点优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,...
  • 缺点:1、可移植性是存储过程和触发器最大的缺点。2、占用服务器端太多资源,对服务器造成很大压力3、不能做DDL。4、触发器排错困难,而且数据容易造成不一致,后期维护不方便。优点:1、预编译,已优化,效率较...
  • 存储过程及游标缺点

    千次阅读 2018-11-23 17:18:57
    前言:相信很多小伙伴在学习阶段肯定使用过存储过程及...存储过程的缺点 优点  1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一...
  • 当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来数据库提供事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条 SQL 语句...
  • 存储过程缺点

    2012-06-05 17:00:40
    存储过程的优点:  1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。  2.当对数据库进行复杂操作时(如对多个...
  • [b][align=center]存储过程的缺点及使用场合[/align][/b] 优点: 1、直接执行sql相比存储过程执行效率高。 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL 语句每执行一次就...
  • 优点: 1.允许模块化程序设计。2.可维护性高,只需创建存储过程一次并将其存储在数据库中,以后即可在程序中...存储过程是被编译后存放在数据库服务器过程高速缓存中,当使用时,服务器不必再重新分析和编译它们。...
  • 存储过程的优点存储过程的缺点存储过程的基本语法存储过程的分类1、系统存储过程1.1、系统存储过程sql示例2、自定义存储过程2.1、创建不带参数存储过程2.2、修改存储过程2.3、带参数存储过程2.4、带通配符参数存储...
  • JVM 优点与缺点的深入分析

    千次阅读 2012-05-05 23:19:39
    Java 最初诞生时候,它可以说是其他语言进化版。不仅因为Java很简单,而且这一进化语言还是一个可以运行第三方...Java本来是一个简单独一语言,但是Sun在长期运营Java的过程中出现了很多错误,比如将语言ru
  • 一、我先来来说一说调用存储过程的优点与缺点: 1、SQL语句已经预编绎过了,因此执行效率、性能大大增加。 2、可以接受参数、输出参数、返回单个或多个结果集以及返回。可以向程序返回错误原因。 3、减少网络流量。...
  • 存储过程缺点总结

    2019-09-29 17:03:39
    优点: 1、快速 a、当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来数据库提供事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条...
  • 一,存储过程 优点: 1,减少网络带宽,按理论存储过程会提高性能. 2,无需重新编译,更改后即可运行,无需重新编译代码 3,由专门dba写sql语句更高效 4,安全性,(在传输用户名密码时,可防止注入等情况) ...
  • 存储过程的优点 1、存储过程允许标准组件式编程 2、存储过程能够实现较快的执行速度 3、存储过程减轻网络流量 4、存储过程可被作为一种安全机制来充分利用  存储过程的缺点 1、运行速度 2、代码可读性差,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 448
精华内容 179
关键字:

存储过程的优点与缺点