`
wu_quanyin
  • 浏览: 208165 次
  • 性别: Icon_minigender_1
  • 来自: 福建省
社区版块
存档分类
最新评论

业务逻辑层与存储过程优缺点对比

阅读更多

 

一,存储过程

优点:

1,减少网络带宽,按理论存储过程会提高性能.

2,无需重新编译,更改后即可运行,无需重新编译代码

3,由专门的dba写的sql语句更高效

4,安全性,(在传输用户名密码时,可防止注入等情况)

 

缺点:

1,依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)

2,业务逻辑大的时候,封装性不够,难调试难以维护

3,复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了。没有办法通过中间层来灵活分担负载和压力.均衡负载等

 

结:

存储过程用于进行一些简单的业务逻辑以及数据传送会更好维护,但是在复杂应用时,应交于中间层服务器处理.所以合适的时候用着合理的操作.


结合自己所学,与网络上的文章,,对其作了一些小结:


有不同观点的可对上面进行发表。。。。。

参考这里面的讨论:http://www.iteye.com/topic/870844
分享到:
评论
6 楼 anky_end 2010-08-16  
ironsabre 写道
wu_quanyin 写道
ironsabre 写道
缺点:

1,依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)

2,业务逻辑大的时候,封装性不够,难调试难以维护

3,复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了。没有办法通过中间层来灵活分担负载和压力.均衡负载等

------------------
1,谁没事去移值业务系统的数据库?
2,经常有人说存储过程不好调试,我不明白这么说的人有没有用过存储过程。
3,几百万买的数据库服务器,不好好利用,可惜了得。我不能买个Oracle当Mysql使。


1,谁说不会移,,当你一个系统由大到小时,难道不会移植吗?
2,难以维护这是肯定的,,数据库顶多算个结构性语言,相对于面向对象的语言,在封装性,易读性能都差太多了。。


银行,保险,电信这些行业的后台主要复杂逻辑基本上都是由存储过程来实现的。
反而是一些做简单CRUD的人,经常性的来BS存储过程。很奇怪的事情。

没做过大系统的话嘛;

不过确实,存储过程可读性是略差些,调试起来也没java方便,但是直接部署在数据库服务器上运行,省掉了很多开销。

这类应用性能瓶颈就是在数据库上,web再集群也意义不大。

如果是类似淘宝这种查询请求多,倒是搞个缓存的层次意义大。电信金融类的,特别是数据汇集的需求,存储过程还是有不可替代的优势,毕竟数据库很难群集
5 楼 anky_end 2010-08-16  
跑个报表用web容器实现。。。?
这个我大概很难想象。

性能瓶颈在于io操作和网络传输。。
4 楼 ironsabre 2010-08-16  
wu_quanyin 写道
ironsabre 写道
缺点:

1,依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)

2,业务逻辑大的时候,封装性不够,难调试难以维护

3,复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了。没有办法通过中间层来灵活分担负载和压力.均衡负载等

------------------
1,谁没事去移值业务系统的数据库?
2,经常有人说存储过程不好调试,我不明白这么说的人有没有用过存储过程。
3,几百万买的数据库服务器,不好好利用,可惜了得。我不能买个Oracle当Mysql使。


1,谁说不会移,,当你一个系统由大到小时,难道不会移植吗?
2,难以维护这是肯定的,,数据库顶多算个结构性语言,相对于面向对象的语言,在封装性,易读性能都差太多了。。


银行,保险,电信这些行业的后台主要复杂逻辑基本上都是由存储过程来实现的。
反而是一些做简单CRUD的人,经常性的来BS存储过程。很奇怪的事情。
3 楼 wu_quanyin 2010-08-16  
ironsabre 写道
缺点:

1,依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)

2,业务逻辑大的时候,封装性不够,难调试难以维护

3,复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了。没有办法通过中间层来灵活分担负载和压力.均衡负载等

------------------
1,谁没事去移值业务系统的数据库?
2,经常有人说存储过程不好调试,我不明白这么说的人有没有用过存储过程。
3,几百万买的数据库服务器,不好好利用,可惜了得。我不能买个Oracle当Mysql使。


1,谁说不会移,,当你一个系统由大到小时,难道不会移植吗?
2,难以维护这是肯定的,,数据库顶多算个结构性语言,相对于面向对象的语言,在封装性,易读性能都差太多了。。
2 楼 ironsabre 2010-08-16  
缺点:

1,依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)

2,业务逻辑大的时候,封装性不够,难调试难以维护

3,复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了。没有办法通过中间层来灵活分担负载和压力.均衡负载等

------------------
1,谁没事去移值业务系统的数据库?
2,经常有人说存储过程不好调试,我不明白这么说的人有没有用过存储过程。
3,几百万买的数据库服务器,不好好利用,可惜了得。我不能买个Oracle当Mysql使。
1 楼 srdrm 2010-08-13  
缺点,不灵活,难于维护

优点,有些复杂的处理逻辑,如果没有良好的在编程语言上的支持将非常难于实现及维护,这时可借助于存储过程更简明

相关推荐

    什么时候使用存储过程比较适合.docx

    以下是对何时使用存储过程及其优缺点的详细说明: **适用场景:** 1. **多表操作**:当一个业务操作涉及到对多个数据库表的操作,如更新、插入、查询或删除时,存储过程可以帮助简化逻辑,一次性处理所有操作,避免...

    什么时候使用存储过程比较适合.pdf

    以下是对存储过程适用场景和优缺点的详细阐述: **适合使用存储过程的场景:** 1. **多SQL语句的事务**:当一个数据库操作涉及多个SQL语句或跨多个表时,存储过程可以整合这些操作,减少网络通信,提高效率。 2. ...

    DB2Java存储过程.pdf

    - **2.1.3 选择访问方法:JDBC 与 SQLJ**:对比两种访问方法的优缺点。 - **2.1.4 JDBC 驱动类型**:详细介绍不同类型的 JDBC 驱动及其应用场景。 - **2.2 Java 和 DB2 存储过程** - **2.2.1 什么是存储过程**:...

    ASP.NET高级编程:三层架构概述.pptx

    三层架构的优缺点比较 “三层架构概述”知识要点 UI(表现层):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。 BLL:(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑...

    java 存储过程使用方法介绍

    - **共享业务逻辑**:在遗留系统与J2EE应用之间共享Java存储过程,促进不同系统的无缝集成。 - **自动为主键实体Bean生成主键**:利用Java存储过程自动生成主键,简化实体Bean的开发工作。 - **使用Java存储过程映射...

    三层结构与MVC

    - **层次**: 三层架构将业务逻辑层(BLL)和数据访问层(DAL)明确区分开来,而MVC中的Model部分可能包含了这两层的功能。 - **交互方式**: 在MVC中,控制器是核心,负责处理用户请求并将请求分发给合适的模型或视图。...

    类似动软代码生成器的存储过程

    #### 一、存储过程与代码生成器的概念 - **存储过程**:是在数据库中预编译好的SQL语句集合,它能够实现特定功能,并且可以接受参数来动态调整行为。存储过程能提高应用程序的性能、减少网络流量并增强安全性。 - **...

    分布式架构在云计算平台中的应用及优缺点分析.docx

    分布式架构在云计算平台中的应用及优缺点分析 分布式架构是云计算平台中的一种关键技术,它可以为云计算平台提供灵活和按需使用的资源,同时又可以保证业务系统的高可用。传统的集中式架构已经无法满足新时代业务的...

    四种容灾技术对比解析.pdf

    本文将对比分析四种常见的容灾技术,包括基于应用层、卷管理层、存储复制和数据库复制,帮助读者理解它们的实现原理、优缺点以及适用场景。 1. **基于应用层容灾技术**: - **实现原理**:应用层容灾通过应用层...

    java持久层框架对比

    - **简介**:EJB中的Entity Bean主要用于实现数据持久性,通过容器管理的数据持久性(CMP)或bean管理的数据持久性(BMP),开发者可以专注于业务逻辑而非底层细节。 - **优点**: - 标准化:EJB规范定义了一组与供应商...

    浅析.NET逻辑分层架构

    3. 采用的层:将逻辑分层架构细化为表示层、服务层(应用层)、业务逻辑层(领域层)、共享层和实现层,每层都有其特定的职责和作用。 在架构设计中,层与层之间的调用关系非常重要。通常情况下,上层可以调用下层...

    Java业务开发常见错误.zip

    在业务逻辑中,正确地识别和验证对象至关重要,这部分可能阐述了equals()、hashCode()方法的正确实现,以及如何避免比较错误。 "15丨序列化:一来一回你还是原来的你吗?.pdf"关注了Java的序列化机制。序列化可以将...

    存储过程分页

    根据测试结果调整查询逻辑或存储过程设计,进一步优化性能。 #### 六、结论 综上所述,存储过程分页是一种非常实用的技术,能够有效提高数据处理效率。开发者可以根据实际需求选择不同的实现方法,并结合具体的...

    JSP-Struts

    - **缺点**:展示层与业务逻辑混合;无法重用代码。 **示例**: ``` JSP2 JSP1 JSP3 JSP4 Presentation Presentation Present. Ctrl Presentation Logic Present. Ctrl Logic Logic ``` ##### 2.3 JSP Model 2 **...

    MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)

    MYSQL 数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程) MYSQL 数据库高级应用宝典含实例中,涵盖了索引、视图、触发器、游标和存储过程等高级应用领域。下面我们将逐一介绍这些高级应用领域的知识点...

    B/S与C/S结构的分析与比较

    表示层负责用户界面展示,业务逻辑层处理业务规则和流程控制,数据访问层则管理数据的存储和检索。这种分层设计提高了代码的可重用性和可维护性,但同时也可能增加系统的复杂性。 对比C/S和B/S结构,我们可以看到...

    petshop4教程

    2. **业务逻辑层**(或领域层):这是系统的核心,包含了与特定业务相关的逻辑,比如PetShop中的宠物查询、订单处理、购物车操作等。当需要与数据库交互时,该层会调用数据访问层。 3. **表示层**:负责用户界面和...

    几种经典的网络服务器架构模型的分析与比较共5页.pdf.z

    层次式架构将系统分为前端(表示层)、后端(业务逻辑层)和数据库(数据存储层)。这种架构清晰地划分了职责,便于团队协作。然而,它可能导致通信延迟,因为数据需要通过多个层传输。 3. 微服务架构: 微服务架构...

    Oracle第12章数据库应用程序开发.pptx

    - 业务逻辑层:处理数据存取和业务逻辑计算。 - 数据服务层:专注于数据管理,由数据库系统实现。 6. **Java平台Oracle数据库程序开发**: - 使用ODBC-JDBC桥和JDBC驱动程序访问Oracle数据库。 - 学习配置ODBC...

Global site tag (gtag.js) - Google Analytics