精华内容
下载资源
问答
  • 什么时候使用mysql 存储过程

    千次阅读 2017-02-28 10:51:16
    存储过程可以把一些特别的语句封装成一个方法 ,再编译好成一个可以执行的方法,对外只要接收参数就可以了。这样就不用再编译。执行就快了什么时候会用到?你觉得你数据库因为同时出现太多读写操作而变得慢 ,那么...
    mysql 执行语句是要先编译,然后再执行的。这样如果查询并发大的时候。会浪费很多资源和时间。造成mysql进程占用资源过多,症状就是慢。

    但存储过程可以把一些特别的语句封装成一个方法 ,再编译好成一个可以执行的方法,对外只要接收参数就可以了。这样就不用再编译。执行就快了

    什么时候会用到?你觉得你数据库因为同时出现太多读写操作而变得慢 ,那么就要用了

    主要用来提升性能。。
    展开全文
  • 什么时候用存储过程

    千次阅读 2017-08-23 15:00:51
    什么用存储过程 以前的项目都没有用到存储,不照样运行的好好的?存储过程真的那么重要吗,它到底有什么好处呢? 存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。但是存储过程处理...

    为什么要用存储过程

    以前的项目都没有用到存储,不照样运行的好好的?存储过程真的那么重要吗,它到底有什么好处呢?


    存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。但是存储过程处理比较复杂的业务时比较实用。

    比如说,一个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你用存储过程的话。就只有一次。从响应时间上来说有优势。也就是说存储过程可以给我们带来运行效率提高的好处。

    那我们来比较一下用于不用存储过程的区别:

    1.   运行速度:   大多数高级的数据库系统都有statement   cache的,所以编译sql的花费没什么影响。

    但是执行存储过程要比直接执行sql花费更多(检查权限等),所以对于很简单的sql,存储过程没有什么优势。

    2.   网络负荷:如果在存储过程中没有多次数据交互,那么实际上网络传输量和直接sql是一样的。 3.   团队开发:很遗憾,比起成熟的IDE,没有什么很好存储过程的IDE工具来支持,也就是说,这些必须手工完成。

    4.   安全机制:对于传统的C/S结构,连接数据库的用户可以不同,所以安全机制有用;但是在web的三层架构中,

    数据库用户不是给用户用的,所以基本上,只有一个用户,拥有所有权限(最多还有一个开发用户)。这个时候,安全机制有点多余

    5.   用户满意:实际上这个只是要将访问数据库的接口统一,是用存储过程,还是EJB,没太大关系,也就是说,在三层结构中,

    单独设计出一个数据访问层,同样能实现这个目标

      6.   开发调试:一样由于IDE的问题,存储过程的开发调试要比一般程序困难

    7.   移植性:算了,这个不用提,反正一般的应用总是绑定某个数据库的,不然就无法靠优化数据库访问来提高性能了

    8.   维护性:的确,存储过程有些时候比程序容易维护,这是因为可以实时更新DB端的存储过程,但是在3层结构下,

    更新server端的数据访问层一样能实现这个目标,可惜现在很多平台不支持实时更新而已。


    我认为的原则是:所有数据访问在应用层封装为数据访问层,在那里,如果SQL简单的话,直接用SQL;

    如果SQL复杂,或者数据交互多且中间数据最后不会用到,使用存储过程。其他凭经验吧。

    展开全文
  • 什么时候用存储过程合适

    千次阅读 2018-01-19 11:42:45
    当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和...

    当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。


    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

    当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。

     

    为了系统的控制方便,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更改客户端程序。也无需重新安装客户端应用程序。

    存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:
      1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
      2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
      3.存储过程可以重复使用,可减少数据库开发人员的工作量。
      4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

    优点:
    1.速度快。尤其对于较为复杂的逻辑,减少了网络流量之间的消耗
    我有的过程和函数达到了几百行,一个微型编译器,相信用程序就更麻烦了。
    2.写程序简单,采用存储过程调用类,调用任何存储过程都只要1-2行代码。
    (我不知道别人怎么调用,我是深受其益)
    3.升级、维护方便
    4.调试其实也并不麻烦,可以用查询分析器
    5.如果把所有的数据逻辑都放在存储过程中,那么asp.net只需要负责界面的显示阿什么的,出错的可能性最大就是在存储过程。我碰到的就一般是这种情况。

    缺点:
    1.可移植性差,我一直采用sql server开发,可是如果想卖自己的东西,发现自己简直就是在帮ms卖东西,呵呵。想换成mysql,确实移植麻烦。
    2.采用存储过程调用类,需要进行两次调用操作,一次是从sql server中取到过程的参数信息,并且建立参数;第二次才是调用这个过程。多了一次消耗。
    不过这个缺点可以在项目开发完成,过程参数完全确定之后,把所有过程参数信息倒入到一个xml文件中来提高性能。

     

    当一个业务同时对多个表进行处理的时候采用存储过程比较合适。

     

    1. 使用存储过程在一般情况下会提高性能,因为数据库优化了存储过程的数据访问计划并应用缓存方便以后的查询;

    2. 存储过程单独保护存在于数据库中。客户端可以获取权限执行存储过程,而不需要对底层的具体表设置其他的访问权限;

    3. 存储过程会使得维护起来更加方便,因为通常修改一个存储过程要比在一个已经发布的组件中修改SQL语句更加方便;

    4. 存储过程给底层数据格式增添了额外的抽象层。使得使用存储过程的客户端对存储过程的实现细节以及对底层数据格式是隔离独立的;

    5. 存储过程能够缓解网络带宽,因为可以批量执行SQL语句而不是从客户端发送超负载的请求。

    复杂的数据处理用存储过程,如有些报表处理

    多条件多表联合查询,并做分页处理

    转载)


    ------------------------------------------------------------------------------------------------------------------------

      说白了,就是业务逻辑部署在哪里的问题。部署在数据库,程序里当然只有数行的调用代码,当然是这种做法有一定好处,如减少了客户端的运算压力等,但好坏是相对的,就拿这点来说,客户端压力少了,服务端压力就会变大,好

    与非好不是一个人说了算的,要考虑技术和物理支撑多方面因素,当然我认为主要是技术上的问题占主导,偏向数据库技术的人一般喜欢存储过程,这没绝对的对错,但别太过偏执自己的观点。然而对于基于.NET开发的程序员,程序代码

    是主,数据库是次,次只是附属,而不是必需品,众多额.NET开发人员还是应该把业务逻辑写在.NET代码上,以便业务逻辑在不断更替的技术中重用。反之,项目经理今天用关系型数据库来支撑项目,明天也可以用NoSQL,甚至是

    XML,TXT之流作为持久化介质。当然更换持久化介质的频率不会很频繁,但如果真要算一算生命周期,也不会很长,除非你的工作生涯是和公司绑定死,并且公司是不会普及新技术的会一直用关系型数据库到永远。我想没人会这么傻

    吧?就算你愿意,公司也不一定坚持到你退休。看待这个问题要放长双眼,而不是墨守成规,沾沾自喜。

    ------------------------------------------------------------------------------------------------------------------------------------

      团队的技术背景问题。。。存储过程效率上的优势还是有的

    ------------------------------------------------------------------------------------------------------------------------------------


    FROM: http://www.360doc.com/content/13/0513/17/3776353_285164496.shtml#

    展开全文
  • 什么时候用存储过程

    2017-12-22 17:10:41
    1.数据量非常大,不适合数据先移植到程序中,在处理,可以直接在存储过程中处理, 2.数据几乎都是表操作,没有什么复杂的操作, 3.存储过程可以有效的防止注入, 4,当服务器程序员水平不如DBA时候采用存储过程
     1.数据量非常大,不适合数据先移植到程序中,在处理,可以直接在存储过程中处理,
    2.数据几乎都是表操作,没有什么复杂的操作,
    3.存储过程可以有效的防止注入,
    4,当服务器程序员水平不如DBA时候采用存储过程 
    展开全文
  • 什么时候使用存储过程比较适合?

    千次阅读 2015-01-18 09:39:08
    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不...当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程
  • 第一种情况是返回的游标是某个具体的表或视图的数据,如: SQL-Code: ...在调用的时候只要声明一个该表的ROWTYPE类型就可以了: SQL-Code: 代码如下: CREATE OR REPLACE PROCEDURE P_TESTB AS VARCURSOR SYS_REFCURSOR;
  • 什么用存储过程 什么时候用存储过程 存储过程的优点
  • 存储过程一般用于处理比较复杂的任务,基础ms这个平台,可以大大降低耗时,其编译机制也提高了数据库执行速度。 当然在系统控制方便方面,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更改...
  • 我个人主要在下面的时候用存储过程: 1.需多次访问数据库 2.存在数据逻辑操作比较复杂的查询 3.需同时操作多个表的事务操作
  • 什么不推荐使用存储过程

    万次阅读 多人点赞 2019-06-17 18:00:33
    本文作者:菜v菜 | 观点整理:徐...一、存储过程什么存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程...
  • java web项目 什么时候需要使用到sql的存储过程。。。。。。。
  • 什么存储过程用什么调用

    千次阅读 2020-05-20 18:47:15
    什么存储过程存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候...
  • 视图:经常使用的多个表的联合查询,可以创建视图放在数据库中,以备下次查询数据库时使用,尽量少存储过程:为防止恶意注入,对数据库的操作,都使用存储过程; 事务:在存储过程中,如果有对两个以上表...
  • 什么时候用存储过程什么时候用触发器,他们之间的区别【详解】谢谢!! 
  • 存储过程 in参数 的使用 IN参数只用来向过程传递信息,为默认值。 -- 存储过程中 in 参数的 使用 DELIMITER ;; CREATE PROCEDURE name_in(IN `time` VARCHAR(50)) BEGIN SELECT NOW() ,`time`; END ;; CALL name_in...
  • 问题是这样的,在直接使用mysql c api构建应用的时候,一个连接只能执行一次存储过程,不管怎样free再次利用这个连接的时候就会出现不能执行qurry的提示,我想,这么大型的软件 不会存在这样的基础性问题吧,毕竟...
  • 主要介绍了下面是一个较常见的场景,判断表中某列是否存在某值,如果存在执行某操作,需要的朋友可以参考下
  • 一、什么是MySQL存储过程?   在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是数据库中的一个重要对象,它是存储在数据库中的一组完成特定功能的...
  • 什么不建议使用存储过程

    千次阅读 2019-07-21 23:28:57
    在公司的系统升级换代中,明确规定在数据库开发中不允许再使用存储过程了,以前的老一代系统中,很多复杂的业务逻辑都是存储过程写的,那为什么风光无限的存储过程不再被宠幸了呢?首先了解下什么存储过程,它有...
  • 时候,不希望存储过程抛出错误中止执行,而是希望返回一个错误码。 Mysql 支持异常处理,通过定义 CONTINUE/EXIT 异常处理的 HANDLER 来捕获 SQLWARNING/NOT FOUND/SQLEXCEPTION (警告 / 无数据 / 其他异常)。...
  • 什么存储过程

    万次阅读 2018-03-14 20:40:09
    什么存储过程存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候...
  • 什么时候需要用存储过程

    千次阅读 2011-03-29 14:43:00
    2、什么时候需要用存储过程  如果服务器定义了存储过程,应当根据需要决定是否要用存储过程存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。在服务器上执行存储过程
  • 1.存储过程的简介 我们常用的操作数据库语言 SQL 语句在执行的时候需要要先编译然后执行而存储 过程 (Stored Procedure)是一组为了完成特定功能的 SQL 语句集经编译后存储在数据库中 用户通过指定存储过程的名字并...
  • 一、简介 网上百度了好几篇博客,都没有说明存储过程什么东西?然后这个东西有什么用?...于是,参考了下面的这篇CSDN论坛,和大家分享下,什么存储过程,它又有什么用。 https://bbs.csdn.net/to...
  • 存储过程使用 查看存储过程 修改存储过程 删除存储过程 首发日期:2018-04-17 什么存储过程存储过程存储了一系列sql语句 存储过程的需求场景:下边是一个经典的需求场景,很多Mysql的书都有: 存储...
  • SQL Server存储过程编写

    2020-12-14 23:25:49
    存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样可以提高存储过程的性能。  ·存储过程的概念  存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在...
  • 开始之前 首先创建如下两张表,并初始化一些数据。 创建存储过程(CREATE PROCEDURE) ...基本语法格式如下: ...CREATE PROCEDURE sp_name (parameters) ...sp_name为存储过程的名称(唯一性,没有所谓的重...
  • 什么存储过程? 先看一下百度词条给的答案 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数...
  • 什么银行都在用存储过程 2 . 存储过程什么成为互联网弃子 像银行这类系统,通常会采用商用的数据库 Oracle、DB2 等,应为这些供应商有着完整的解决方案,可以帮助银行规避大量的风险。银行的一些外围业务会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,384,850
精华内容 553,940
关键字:

存储过程什么时候用