一、问题分析
公司目前维护的一个系统,已经有超过8年的历史。现在遇到严重的性能问题,尤其是查询方面。系统简单介绍如下:
1. 架构:客户端(windows程序)+服务端(J2EE,EJB,Web Service)+数据库(oracle);
2. 技术特点:
客户端和服务端通过Web Service进行数据传输;
服务端为传统的EJB;
服务端数据采用自行开发的DataSet进行封装,以XML格式返回给客户端;
无DAO对象与领域对象;
无数据缓存机制;
数据库设计严重违背第三范式。
查询经常要从好几个表取数,而且需要将表数据经过复杂的转换(如行列转换)才能得到目标结果,数据量较大,超过5万行。由此产生严重的性能问题,特别是并发访问的情况下。
二、数据库和应用程序服务器的比较
下面列出了本人所了解到的二者分别可以采用的优化方法:
1.数据库
使用存储过程实现查询逻辑,以减少网络交互;
升级数据库服务器硬件。
2.应用程序服务器
使用缓存;
使用分布式、集群应用服务器;
升级应用程序服务器硬件
三、结论
如果系统是按照OO的方式设计,则应用程序服务器上的优化方法自然为首选。但系统没有领域对象,没有DAO对象,全部都采用直接生成SQL语句到数据库取数的方式,数据都用DataSet来封装处理。而DataSet由于实现方式的限制,最多只能包含1万行记录,否则1G的内存就会溢出。而由于使用存储过程实现可以解决减少网络交互、实现分批取数等问题,似乎是最佳的解决方案。
欢迎大家讨论。
分享到:
相关推荐
5. **提供部署文件**:EJB 3.0允许使用注解代替标准部署描述文件(`ejb-jar.xml`),但可能还需要编写一些系统优化所需的厂商特定部署描述文件。 6. **打包并部署**:将EJB组件及相关依赖打包成JAR文件,并部署到...
每个版本都在试图解决前一版本中存在的问题,如性能、复杂性以及与现有开发模式的融合度。然而,EJB 2.0虽然引入了重要的改进,如容器管理的持久性(CMP)和容器管理的关系(CMR),但仍然无法完全摆脱其复杂性和...
这一章节将提供一些技巧和策略,帮助开发者优化现有系统,使其更加易于管理和扩展。 ### 14. 迁移到EJB 3 对于那些已经使用早期版本EJB的开发者来说,迁移到EJB 3.0是一个不可避免的过程。这部分内容将指导他们...
EJB3.0(Enterprise JavaBeans 3.0)是EJB技术的一个重大更新,它引入了许多新的特性和改进,使得开发人员能够更加高效地构建企业级应用。下面将详细介绍EJB3.0的使用注意事项。 #### 一、EJB3.0的新特性与优势 1....
- **Spring框架**:Spring是一个开源的应用程序框架,它提供了一种替代EJB的轻量级方法,尤其在依赖注入(DI)和面向切面编程(AOP)方面表现出色。 - **Hibernate**:作为持久层解决方案,Hibernate简化了数据库...
它详细介绍了系统的架构设计、功能模块、技术实现等方面,确保所有参与者都能对系统的整体架构有一个清晰的认识。 - **适用范围**:该文档覆盖了项目生命周期的各个阶段,对于设计人员、开发人员、测试人员以及维护...
Spring框架提供了一个全面的IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)解决方案,使得代码更易于测试和维护。而Hibernate作为流行的ORM(Object-Relational Mapping...
- **系统解决方案**:采用JSF/Richfaces 作为UI层,EJB 作为业务层,JPA 用于数据持久化。这种架构能够满足系统的功能需求和性能要求。 - **关键技术难点**: - UI层设计:如何设计简洁高效的用户界面,提供良好的...
WebLogic性能调优是一个涉及多个层面的复杂过程,需要从硬件资源、操作系统、网络环境、JVM配置以及WebLogic Server本身等多个维度进行全面考虑。通过对上述各项的综合调优,可以显著提升WebLogic系统的整体性能,...
一个好的架构设计应考虑到系统的可扩展性、可维护性和性能优化等因素。例如,如何利用J2EE框架中的组件技术,如Servlet、EJB(Enterprise JavaBeans)等,来实现各个功能模块。 知识点六:性能压力测试 性能压力...
- **支持平台**:基于现有的组件技术如CORBA、EJB、DCOM等进行构建。 - **数据模型**:建立一套能够描述CIM的数据平台。 - **数据访问接口**:规定了访问数据模型中特定数据的方法,确保系统的开放性和互操作性。 #...
论文还会讨论如何通过J2EE中的Servlet、JSP、EJB等组件实现这些功能,并可能涉及到性能优化、安全策略等高级话题。 开题报告是项目启动阶段的文档,会概述研究目标、研究方法、预期成果和时间规划。对于基于J2EE的...
- **opencron**:一个基于Java开发的开源定时任务管理系统,提供Web界面操作,支持多任务并发执行,但可能在大规模分布式场景下表现一般。 - **antares**:相对较少提及,但也是一个分布式任务调度框架,可能在...
- J2EE对MVC的改进:利用J2EE的特性,如EJB(Enterprise JavaBeans)和Servlet,进一步优化了MVC模型,增强了系统的性能和稳定性。 综上所述,本文档深入分析了连锁企业SCM系统的现状和问题,并提出了基于J2EE技术...
5. Struts2.x的性能问题:Struts2.x在新平台下的性能可能会受到影响,可以考虑优化配置,或者更换更适合的新框架。 总的来说,TongWeb应用的移植是一项复杂但关键的任务,涉及到技术选型、代码调整、测试验证等多个...
- **性能优化**:通过负载均衡、数据库优化、代码优化等方式提高系统性能。 这个压缩包提供的资源可以作为一个全面的学习材料,帮助读者理解如何从头开始构建一个完整的B2C电子商务系统,并了解J2EE开发在实际项目...
Java报表解决方案源码是针对企业级应用中数据报表生成与展示的一个重要工具,它通常包含一系列的类库、API和示例代码,帮助开发者在Java平台上实现复杂的数据处理和报表设计。在J2EE环境中,这类解决方案对于数据...
总的来说,IBM WebSphere不仅是一个强大的应用服务器,还是一个全面的企业级解决方案,为企业提供了一站式的应用开发、集成、管理和迁移服务。结合HATS,WebSphere能够帮助企业在保持与传统系统连接的同时,逐步迈向...