`
samuschen
  • 浏览: 398927 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

总结一下这两天的工作

阅读更多
主要是spg项目的数据库,把casset表中的数据导入到virtualObj表。

开始用的算法:List<Casset> list=cassetManager.findAll();把casset中的记录全部取出来(取到内存),然后逐条与virtualObj中的记录比较virtualObjManager.findVirtualObjByAssetIdAndTypeId(*,*);,然后插入。
导致问题:
1.一次取出全部casset的记录(130000条)数据量太大,内存不够,堆溢出;
2.而且每插入一条数据都要遍历virtualObj表做比较避免数据重复,当virtualObj表记录逐渐增多时操作越来越慢。

改进:
算法:减小list的大小,List<Casset> list=cassetManager.findByConferenceId();每次取一个会议的论文插入virtualObj,解决了问题一,但问题二仍然存在,太慢,不可行。

改进二:
问题二是导致插入太慢的主要原因,因此要避免每插入一条数据都要遍历virtualObj并和每一条数据进行比较的操作,具体采用了如下算法:采用一个标志数组flag[140000]初始为0,下表代表casset表中的id号;VirtualObj中已存在的论文就将flag置1,这样在从 casset中取一条记录(主键id)插入VirtualObj的时候就不用再遍历VirtualObj进行比较,只要看flag[id]为0,则插入,为1 则数据已存在。(速度提高了很多啊)

同时,在对flag数组进行设置时,VirtualObj表中的数据要分段取出,每次取5000个(一次全部取出的话会占用过多的内存,速度变慢)。

最终代码:
int[] flag=new int[140000];
for(int j=0;j<140000;j++)
flag[j]=0;

//取出assetId在70000-140000范围内的记录,共3000多条
//这里只给出了一个分段70000-140000范围
List<VirtualObj> list1=virtualObjManager.findVirtualObjBySiteIdAndRange(5, 70000, 140000);
Iterator<VirtualObj> it1=list1.iterator();
while(it1.hasNext()){
int assetid=it1.next().getAssetId();
flag[assetid]=1;
System.out.println("++++:assetId="+assetid+"===:"+flag[assetid]+"  ---"+virtualObjManager.findVirtualObjByAssetIdAndTypeId(assetid, 5).get(0).getName());
}


//执行插入操作
for(int id=70000;id<140000;id++){
if(flag[id]==0){
Casset casset=cassetManager.findCassetById(id);
if(casset!=null){
VirtualObj obj=new VirtualObj();
obj.setAssetId(casset.getId());
obj.setTypeId(5);
obj.setCreateTime(casset.getCreatetime());
obj.setModifiedTime(casset.getLastmodifytime());
obj.setAcl(700);
obj.setName(casset.getTitle());
obj.setFilePath(casset.getPdf_url());
obj.setSecondName(casset.getPdf_url());
obj.setType("pdf");
obj.setIcon("pdf");
obj.setCategory("文档");
virtualObjManager.addVirtualObj(obj);
System.out.println("++++:Id="+id+"---"+casset.getTitle());
}
}
}
分享到:
评论

相关推荐

    谈软件测试---一年测试工作总结

    这两天尤为强烈,不管怎样都应该把这一年多测试工作学到的知识和想法记录下来。软件测试行业在国内发展时间较短,每个公司对软件测试公司的定位和  这篇总结推迟了好久,一直想在工作一年之后写一篇总结,由于各种...

    软件测试流程进阶----两年软件测试总结

    工作一年的时候我写了《谈软件测试---一年工作总结》 ,谈轮了自己对各种测试的理解,这一年来,虽然对那些理概念的有所加强,自我感觉没有什么质的变化。前些天听我们公司的一位测试经理讲《敏捷测试》豁然开朗。他...

    LOGO设计大赛总结.doc

    征稿阶段是最忙的时候,我们持续进行了两天,分别在南北院食堂进行宣传。发传单 很简单,但让同学们马上报名却十分不易。我负责在南院食堂门口发传单。我逢人就说 "同学你好,我们网站在进行LOGO设计大赛,你有兴趣...

    计算机基础实训总结.docx

    同实,access概念清晰,简单易学、实用是适合企业管理人员、数据库管-理-员使用的首眩我觉得学习了这个,对我参加工作后制表、创建查询、数据分析和材料演示都有很大的作用,这样,我们能更清计算机基础实训总结全文...

    java实习总结报告.docx

    纵观现在的就业形势,国家高校的扩招,世界的横扫,大学生应该有一种居安思危的紧迫感,特别是对于已经渡过两年的大学的我来说,毕业不是一个遥远的名词,找工作更不是水到渠成的动词了。宝剑锋从磨砺出,梅花香自...

    计算机毕业实习总结实习学习总结.doc

    通过这两年的学习 实践中和 老师 的指导下以大量明晰的操作步骤和典型的应用实例,教会我们。使更丰富全面的软件技 术和应用技巧,使我们真正对所学的软件融会贯穿,熟练在手。所以本人结合所学专业 的内容制作了 ...

    网络安全风险总结报告.doc

    具体定性评估和定量评估两种方法的风险等级控制标准参见《风险管理控制程序》 未知来源软件(SOUP)异常评价 无 网络安全风险分析(FTA) "危害 " "1.1天灾 " "2.1个域网危害 " "3.1操作系统危害 " "4.1安全软件 " ...

    计算机应用基础实训总结报告.doc

    计算机应用基础实训总结报告 班级:P311210 学号:29 姓名:陈桂梅 计算机实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西不 懂呢!这是我大学以来第三次实训,每次实训我都感觉学到了好多...

    改善C#程序的50种方法.doc

    真正钻研技术的人才不会追求虚无的东西],其实这本书我都借了好久,一直没有系统的看,所以趁这两天好好看看,顺便总结了一些要点,给那些需要这方面知识而又没有太多时间的IT人一个快速的学习机会。

    1计算机应用基础实训总结报告.doc

    计算机应用基础实训总结报告 班级:P 学号:29 姓名:陈桂梅 计算机实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西不 懂呢!这是我大学以来第三次实训,每次实训我都感觉学到了好多东西!...

    crontab实现每隔多少天执行一次脚本的两种方法

    我们大家在工作中,经常会碰到每隔多少天/小时/分钟执行一次脚本,或某个命令的情况。如果是每隔多少小时,多少分运行一次程序,在crontab中可能比较好实现一些,下面是一些示例及crontab的格式说明: 具体示例: #...

    计算机应用技术专业学生毕业实习总结.docx

    通过这两年的学习实践中和老师的指导下以大量明晰的操作步骤和典型的应用实例,教会我们。使更丰富全面的软件技术和应用技巧,使我们真正对所学的软件融会贯通,熟练在手。所以本人结合所学专业的内容制作了个人...

    计算机信息实习报告.docx

    我将从以下几个方面总结计算机信息管理岗位工作实习这段时间自己体会和心得: 一、努力学习,理论结合实践,不断提高自身工作能力。 在计算机信息管理岗位工作的实习过程中,我始终把学习作为获得新知识、掌握方法、...

    关于网络安全的总结报告.doc

    关于网络安全的总结报告 在 21 世纪,网络已经成为人们日常生活的一部分,很 多人甚至已经离不开网络。有了网络,人们足不出户便可衣 食无忧。前些天刚从电视上看到关于年底网购火爆,快递公 司也在"春运"的新闻。...

    计算机应用基础实训总结报告-.doc

    计算机应用基础实训总结报告 班级:P311210 学号:29 姓名:陈桂梅 计算机实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西 不懂呢~这是我大学以来第三次实训,每次实训我都感觉学到了好多东西...

    微信小程序上传图片至OSS的一些个人总结

    这两天修改公司小程序的一些功能,发现上传图片至OSS失败,便一直寻找出现了什么问题,最后发现是policy过期,更改后发现相应的signature也要改,因为需要特定的处理才能生成signature,当时好一顿查资料,最后算出...

    个人收集的PPT素材大全.ppt

    工作多年,总结的ppt素材,值得你拥有。

    EHS实习报告.docx

    在公司领导、安全环境课课长的指导和其他同事的支持帮助下,通过两个月以来的工作学习使自己在生产安全、消防以及环境等方面的从认识和参与管理方面的工作都有了很大的进步,现将自己这段时间的工作学习总结如: 一...

Global site tag (gtag.js) - Google Analytics