递归-ext中tree数据量大加载缓慢

问题描述

ext中tree数据量大加载缓慢

ext2中tree数据量大加载缓慢,页面显示速度缓慢,有时无法显示,显示数据是正常的,这个是后台程序:List orgs = this.groupManager.getQuery(
" from UserGroup ug where leve = 1 ").list();
initChildren(orgs);
initChildren方法中:
private Collection initChildren(Collection orgs) {
for (UserGroup ug : orgs) {
Hibernate.initialize(ug.getEquipments());
Set equipents = ug.getEquipments();
for (Equipment e : equipents) {
Hibernate.initialize(e.getChannels());
}
Collection set = initFileMap(ug.getFileMap());
ug.getEquipments().addAll(set);
ug.getEquipments().addAll(initChildren(ug.getSubGroups()));
}
return orgs;
}
private Collection initFileMap(Collection fileMaps) {
for (FileMap fileMap : fileMaps) {
Hibernate.initialize(fileMap.getFileMap());
initFileMap(fileMap.getFileMap());
}
return fileMaps;
}
用了递归循环,每个节点都需要查询一次,当有1000多数据时候查询时间用了55秒,有时候报内存溢出异常(Caused by: java.lang.OutOfMemoryError: Java heap space),修改了Tomcat配置文件增加了内存,异常不报了,但依然加载缓慢或是卡。。。是程序算法问题吗?或是有没有其他方法让其不卡?求大神指点。。

时间: 2024-12-03 00:16:24

递归-ext中tree数据量大加载缓慢的相关文章

EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

原文:EF如何操作内存中的数据以及加载相关联表的数据:延迟加载.贪婪加载.显示加载 之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过ObjectContext来操作数据库的,一看是Object打头的,自然相当庞大,方法也比较多.到了经典的4.1版本,EF小组推出了一些更简单好用的API,就是DbContext,它包括更常用的方法.看看EF小组是怎么说

Ext中tree的问题(菜鸟提问)

问题描述 看3.2 的API跟例子,不大明白其中的代码所含的意思.最近在学习Ext,想做个从数据库读取的数据,然后显示在tree上,要可选的 解决方案 先定义根节点,如果是静态树就用appendchild方法来添加各个子节点,如是想要动态树那么根节点要定义成AsyncTreeNode,然后设置url来返回子节点就行.其实一个节点的基本属性有(text,id,leaf)就行

Android界面数据懒加载实现代码_Android

大家在使用手机新闻客户端的时候就会有一个发现,大多数的新闻客户端都会把新闻分类,诸如头条.娱乐.体育.科技等等,如何实现这种界面的呢?这个实现起来其实很简单,就是在一个Fragment中实现多个ViewPage的切换,再在ViewPage的上面放一个TabLayout,关联起来就可以实现联动效果.如果大家感觉不太明了的话,以后我可以专门写一篇关于Fragment中放入多个ViewPage的博客,今天,我主要介绍的是怎样实现界面即Fragment的懒加载.那么,大家就会奇怪了既然是加载界面直接加载

mongodb 命令行下及php中insert数据详解_MongoDB

前面说了到数据库连接操作,请参考:mongodb 添加用户及权限设置详解 对数据库的操作:请参考:mongodb 数据库操作详解--创建,切换,删除 下面说一下,数据库表的插入操作 1,命令行下的insert操作 > use test; #切换到test数据库 switched to db test > document=({"title" : "linux命令", "auther" : "tank" }); #定

关于sqlserver中部分数据转移到oracle的方案

问题描述 目前需要把sqlserver中的部分数据导入到oracle中,请问有什么好的方案? 情况是: sqlerver和 oracle的 表结构(字段)大部分都差不多,有些表的结构有差异. 而现在需要的就是把sqlserver中 想要的数据迁移到oracle中.数据量大概是几百万左右. 解决方案 去搜索etl工具,网上有很多.以前用过Kettle,出了不少问题,不过还是挺好用的,能解决你的问题,几百万很快就能处理完.每个字段的话也可以做特殊处理解决方案二:我传数据是用Navicat Premi

大数据量高并发的数据库优化详解_MsSql

如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 一.数据库结构的设计 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须

大数据量下的SQL Server数据库自身优化

1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里 由于CPU和内存的速度远大于硬盘的读写速度,所以可以把不同的数据文件放在不同的物理硬盘里,这样执行查询的时候,就可以让多个硬盘同时进行 查询,以充分利用CPU和内存的性能,提高查询速度. 在这里详细介绍一下其写入的原理,数据文件

大数据量高并发的数据库优化详解

如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 一.数据库结构的设计 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须

Android界面数据懒加载实现代码

大家在使用手机新闻客户端的时候就会有一个发现,大多数的新闻客户端都会把新闻分类,诸如头条.娱乐.体育.科技等等,如何实现这种界面的呢?这个实现起来其实很简单,就是在一个Fragment中实现多个ViewPage的切换,再在ViewPage的上面放一个TabLayout,关联起来就可以实现联动效果.如果大家感觉不太明了的话,以后我可以专门写一篇关于Fragment中放入多个ViewPage的博客,今天,我主要介绍的是怎样实现界面即Fragment的懒加载.那么,大家就会奇怪了既然是加载界面直接加载