zoukankan      html  css  js  c++  java
  • 存储过程的优缺点

    定义:一组为了完成特定功能的sql语句集。

    优点
    1,执行速度快。存储过程存储在数据库中,一次编译永久有效。相对于一般sql每执行一次就要编译一次而言快。
    2,减少网络传输。存储过程直接在数据库上跑,不需要数据传输,限制存储过程的只是硬盘的速度而非网速。
    3,可维护性。有些问题直接改存储过程就行,无需编译发布代码了。
    4,安全性高。存储过程比较稳定,可以设定权限。
    5,可扩展性高。应用程序和数据库编码单独工作,减少了耦合。

    缺点
    1,开发调试性差。由于IDE问题,存储过程比一般sql调试起来困难许多。
    2,可移植性差。sql终归只是结构化查询语言,不是面向对象的,过程的处理非常吃力,对于一些复杂的业务更加困难,同时也限制了应用程序的可移植性。
    3,重新编译问题。对于一些参数或结果的变化,需要重新调试编译,比较繁琐。
    4,不支持集群。存储过程使得数据库无法水平拓展或数据库切割,,因为切割后存储过程不知道数据在哪个数据库中。

    总之,适当运用存储过程可以提高性能,但不应大规模滥用。而且随着众多ORM的出现,存储过程的许多优势已经很不明显了。而且最重要的是,SQL终归只是结构化查询语句,我们不应该用存储过程处理复杂的业务逻辑,它不仅使得我们的代码可读性变差,也违背了SQL的初衷,复杂的业务逻辑还应交给代码处理。阿里手册中也提到严禁使用存储过程,因为其差劲的调试和拓展,以及可移植性。当然猜测可能是用的数据库是MySQL,因为MySQL对存储过程得支持太差,远不如SQL server,

    引文地址:https://blog.csdn.net/u010796790/article/details/52194842

                      https://www.cnblogs.com/wiggin-Z/p/10614497.html

  • 相关阅读:
    [转载]数据类型和Json格式 Joe
    为页面去掉下划线
    基于Spring,struts,hibernate的JYazd仿yazd及jivejdon
    tomcat下建立虚拟目录
    用例建模指南
    王老师好,学生请教个设计上的问题
    博客第一个处女作,顺便测试一下
    自定义可以和with一起工作的类
    boost cpu_timer
    静态初始化的相依性
  • 原文地址:https://www.cnblogs.com/lvqiang/p/14187825.html
Copyright © 2011-2022 走看看