一、问题分析
公司目前维护的一个系统,已经有超过8年的历史。现在遇到严重的性能问题,尤其是查询方面。系统简单介绍如下:
1. 架构:客户端(windows程序)+服务端(J2EE,EJB,Web Service)+数据库(oracle);
2. 技术特点:
客户端和服务端通过Web Service进行数据传输;
服务端为传统的EJB;
服务端数据采用自行开发的DataSet进行封装,以XML格式返回给客户端;
无DAO对象与领域对象;
无数据缓存机制;
数据库设计严重违背第三范式。
查询经常要从好几个表取数,而且需要将表数据经过复杂的转换(如行列转换)才能得到目标结果,数据量较大,超过5万行 ...
其实没有用orm之前,如果系统分层比较彻底的话,也同样有这个问题。我们崇尚service层不包含数据访问的东西,包括sql语句等。这些都应该是dao层实现。但是很多查询功能都需要能够多条件任意组合查询。这个时候数dao层应该如何支撑?
我的想法是:
1.做一个比较通用的查询功能,比如设计一个参数类,查询条件通过这个参数类传递到dao层。dao负责解析;
2.就是dao层穷举这些所有可能的组合,分别为每一个组合生成一个接口方法。
看到有人在Hibernate中是使用detachedCretira来实现的。在查询端构造好detachedCretira,然后传递到dao去查询。但是这种方法违背了 ...
- 浏览: 1186 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
一个现有EJB系统的性能优 ...
你提到查询过程性能问题严重,请问这种查询的结果是否还要做为业务处理的输入?还是只 ...
-- by movingboy -
一个现有EJB系统的性能优 ...
Lucas Lee 写道你的优化方法只是泛泛的方向,没有结合具体实际来考虑是否合 ...
-- by wczwcg -
一个现有EJB系统的性能优 ...
升级硬件比动软件更划算
-- by feedss -
一个现有EJB系统的性能优 ...
你的优化方法只是泛泛的方向,没有结合具体实际来考虑是否合适。首先你得找到瓶颈。数 ...
-- by Lucas Lee -
Color uml 与 DDD
tuti 写道画Color Uml的过程不就是分析吗? 我的理解中这个分析是基 ...
-- by wczwcg






评论排行榜