精华内容
下载资源
问答
  • 什么是存储过程?与函数有什么区别联系?

    什么是存储过程?与函数有什么区别和联系?

    1、存储过程

    SQL语句在执行的时候,需要先编译再运行。在大型的数据库系统中,为了提高效率,将为了完成某个功能的SQL语句集进行编译优化之后,存储在数据库服务器中,用户通过指定的存储过程的名字来调用执行。

    运用存储过程可以增强SQL语句的灵活性和可用性。

    2、存储过程和函数的区别?

    (1)存储过程一般是作为一个独立的部分来执行。函数一般会作为查询语句的一个部分来调用。

    (2)一般来说,存储过程实现的功能较为复杂。函数实现的功能比较有针对性。

    (3)存储过程可以返回多个参数。函数需要用括号包住输入的参数,并且只能返回一个值或者对象。

    (4)函数可以嵌入在SQL中使用,也可以在select中使用,存储过程则不可以。

    (5)函数不能操作实体表,只能操作内建表。

    (6)存储过程在创建时就在服务器上进行了编译,执行速度比函数快。

    3、存储过程的优点和缺点?

    优点:

    (1)执行速度快

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

    (2)减少网络通信量

    当对数据库进行复杂操作时,(如对多个表进行insert、update、select、delete时)可将这些复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序完成就是多条SQL语句,可能要多次连接数据库,而换成存储过程只需一次连接。

    缺点:

    (1)开发调试差

    无良好的IDE开发工具,存储过程的调试比一般SQL要复杂的多。

    (2)可移植性差

    由于存储过程将应用程序绑定到数据库上,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。

    展开全文
  • 存储过程的优点和缺点

    千次阅读 2016-03-30 21:16:23
    存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。 ③安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储...

    优点

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

    存储过程缺点

    1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
    2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
    3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
    4: 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。
    展开全文
  • 对于复杂业务逻辑,因为在存储过程创建时候,数据库已经对其进行了一次解析优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度...

    优点:
    1、 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通sql快。
    2、 减少网络传输:存储过程直接就在数据库服务器上跑,所有的数据访问都在数据库服务器内部进行,不需要传输数据到其它服务器,所以会减少一定的网络传输。但是在存储过程中没有多次数据交互,那么实际上网络传输量和直接sql是一样的。而且我们的应用服务器通常与数据库是在同一内网,大数据的访问的瓶颈会是硬盘的速度,而不是网速。
    3、可维护性:的存储过程有些时候比程序更容易维护,这是因为可以实时更新DB端的存储过程。 有些bug,直接改存储过程里的业务逻辑,就搞定了。
    4、增强安全性:提高代码安全,防止 SQL注入
    5、可扩展性:应用程序和数据库操作分开,独立进行,而不是相互在一起。后期逻辑或需求变更,可以之间在服务端的数据库修改,不需要变更前台代码;
      缺点:
    1、可移植性差;换数据库的话,oracle数据库的存储过程无法迁移到mysql、db2等其他数据库,不通用;
    2、占用服务器端较多资源,大量存储过程并发时对数据库服务器造成很大的压力;
    3、对外接口受限制,只能跟oracle数据库交互,不能给其他数据库交互,也不能跟分布式数据库如hive等交互,也不能读入文件;
    4、后期编译报错,不能主动提示,如果用定时任务调度时,由于编译报错导致任务失败,无法监控;

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

    2010-09-08 20:29:38
    存储过程是sql语句控制流语句((控制流语句如:GoTo,Exit ,Stop,End ,Return))集合存储过程由用 户创建,当第一次执行时由系统编译并存储在数据库中,编译后的存储过程 可快速执行优点: ...

    存储过程是sql语句和控制流语句((控制流语句如:GoTo,Exit ,Stop,End ,Return))的集合存储过程由用 户创建,当第一次执行时由系统编译并存储在数据库中,编译后的存储过程  
      可快速执行
    优点:

    1。预编译(存储过程在首次运行时将被编译,这将产生一个执行计划),已优化,效率较高。避免了SQL语句在网络中传输然后再解释的低效率。

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

    3。修改方便。嵌入在程序中的SQL语句修改比较麻烦,而且经常不能肯定该改的是不是都改了。SQLSERVER上的存储过程修改就比较方便,直接改掉该存储过程,调用它的程序基本不用动,除非改动比较大(如改了传入的参数,返回的数据等)。

    4。更安全。不会有SQL语句注入问题。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23155850/viewspace-674836/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/23155850/viewspace-674836/

    展开全文
  • 存储过程是在大型数据库中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译之后永久生效,用户通过去指定存储过程的名字并给出参数来执行它。 优点: 可以重复使用,减少开发人员工作量 对于...
  • 对于复杂业务逻辑,因为在存储过程创建时候,数据库已经对其进行了一次解析优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度...
  • 2、存储过程的优点和缺点3、怎样调用存储过程4、除了sqlserver存储过程实现分页,还有什么实现方法?5、存储过程分类5.1、不带参数的存储过程5.2、带输入参数的存储过程5.3、带输入输出参数的存储过程,进行模糊查询...
  • 1.2 存储过程的特点 优点:执行效率高,因为存储过程是在数据库服务端执行的。 缺点:MySql的存储过程不能在oracle或SQLserver中执行,移植性差。 1.3 创建数据库 create databasedb20171213;//execute u...
  • 客户端:SQLyog、Navicat1.2 存储过程的特点优点:执行效率高,因为存储过程是在数据库服务端执行的。缺点:MySql的存储过程不能在oracle或SQLserver中执行,移植性差。1.3 创建数据库create databasedb20171213;//...
  • 数据库存储过程详解

    万次阅读 2017-08-23 22:46:55
    存储过程的缺点  ◆优点:  执行速度更快。存储过程只在创造时进行编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程执行速度更快。  存储过程用于处理复杂的操作时,程序的可读性更强、网络的...
  • SQL Server数据库基础知识——数据库存储过程怎么写

    千次阅读 多人点赞 2020-05-22 04:45:56
    存储过程的缺点 存储过程触发器的区别? 存储过程函数的区别? 存储过程的使用 1. 什么是存储过程? 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次...
  • 存储过程优点&缺点

    2015-04-14 11:23:00
    存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要。其威力优势主要体现在: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就...
  • MySQL数据库存储过程

    2010-06-05 20:46:40
    存储过程在实际应用中也是优点大于缺点。不过最主要还是执行效率SQL 代码封装,特别是 SQL 代码封装功能,如果没有存储过程。在外部程序访问数据库时,要组织很多 SQL 语句。特别是业务逻辑复杂时候,一大堆...
  • 数据库存储过程

    2021-02-26 00:05:21
    定义: 存储过程是由sql判断语句组成,存储于数据库,并且是一个过程 特点 优点 缺点 与sql不同点
  • 存储过程是一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程函数是事先经过编译并存储在数据库中...
  • 存储过程的缺点

    2020-05-16 09:50:39
    存储过程的缺点  优点  1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析优化。存储过程一旦执行,在内存中就会保留一...
  • 存储过程的缺点 存储过程触发器的区别 部分代码演示 什么是存储过程 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL...
  • 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 2、存储过程的缺点...
  • 存储过程和函数的优点: 允许标准组件式编程,提高了SQL语句的重用性、共享性和可移植性。 实现较快的执行速度,减少网络流量。 可以被作为一种安全机制来利用。 存储过程和函数的缺点: 编写比单句SQL...
  • 使用视图和存储过程的缺点

    千次阅读 2017-03-18 17:58:47
    使用视图和存储过程的缺点  –以下内容整理自网络视图的优点:   简单性   视图不仅可以简化用户对数据的理解,也可以简化他们的操作,哪些经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都...

空空如也

空空如也

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

数据库存储过程的优点和缺点