`
aijun980204
  • 浏览: 97527 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

138万条记录的List()与iterate()速度对比

    博客分类:
  • java
 
阅读更多

程序代码


        Session session=HibernateSessionFactory.getSession();
        List li=null;
        Date d=new Date();
        System.out.print(d.toString());
        li=session.createQuery("from TgovMaterial").list();
        Date d2=new Date();
        System.out.print(d2.toString());



...超出内存...

程序代码 程序代码

        Session session=HibernateSessionFactory.getSession();
        Iterator it=null;
        Date d=new Date();
        System.out.print(d.toString());
        it=session.createQuery("from TgovMaterial").iterate();
        Date d2=new Date();
        System.out.print(d2.toString());



Wed Jun 04 09:31:43 GMT 2008Hibernate: select tgovmateri0_.Id as col_0_0_ from [Material-08].dbo.tGovMaterial tgovmateri0_
Wed Jun 04 09:31:43 GMT 2008
不到一秒钟,所以记录较多时,我们推荐使用iterate()
输 出测试:

程序代码 程序代码

        Session session=HibernateSessionFactory.getSession();
        Iterator it=null;
        Date d=new Date();
        System.out.print(d.toString());
        it=session.createQuery("from TgovMaterial").iterate();
        while(it.hasNext())
        {
            TgovMaterial t=(TgovMaterial)it.next();
            System.out.println(t.getId());
        }

        Date d2=new Date();
        System.out.print(d2.toString());



Wed Jun 04 09:38:17 GMT 2008
.......
Wed Jun 04 09:39:20 GMT 2008

竟然只有一分来钟

程序代码 程序代码

it=session.createQuery("from TgovMaterial").setFirstResult(1).setMaxResults(50).iterate();



Wed Jun 04 09:41:43 GMT 2008Hibernate: select top 51 tgovmateri0_.Id as col_0_0_ from [Material-08].dbo.tGovMaterial tgovmateri0_
....
Wed Jun 04 09:41:43 GMT 2008

不到1秒

程序代码 程序代码

it=session.createQuery("from TgovMaterial").setFirstResult(1000000).setMaxResults(60).iterate();



Wed Jun 04 09:53:15 GMT 2008Hibernate: select top 1000060 tgovmateri0_.Id as col_0_0_ from [Material-08].dbo.tGovMaterial tgovmateri0_
....
Wed Jun 04 09:53:18 GMT 2008

程序代码 程序代码

it=session.createQuery("from TgovMaterial").setFirstResult(1300000).setMaxResults(60).iterate();



Wed Jun 04 09:55:09 GMT 2008Hibernate: select top 1300060 tgovmateri0_.Id as col_0_0_ from [Material-08].dbo.tGovMaterial tgovmateri0_
...
Wed Jun 04 09:55:13 GMT 2008

程序代码 程序代码

it=session.createQuery("from TgovMaterial").setFirstResult(10000).setMaxResults(60).iterate();


Wed Jun 04 09:55:53 GMT 2008Hibernate: select top 10060 tgovmateri0_.Id as col_0_0_ from [Material-08].dbo.tGovMaterial tgovmateri0_

分享到:
评论

相关推荐

    day37 04-Hibernate二级缓存:list和iterate方法比较

    2. `iterate`方法:与`list`不同,`iterate`方法按需加载数据,它返回一个迭代器,每次调用`next()`方法时才会从数据库中获取一条记录。这种方式降低了内存消耗,尤其适合处理大量数据。但缺点是需要更多的数据库...

    ibatis中iterate的例子

    在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...

    struts 标签 logic:iterate使用 logic:iterate

    Action类`InformationAction`负责处理请求,从中获取`account`信息,然后通过数据库查询获取与之关联的所有账户信息,将结果存储在一个`ArrayList`中,这个列表随后被设置到`HttpServletRequest`的session属性`list`...

    logic:iterate 是什么,怎么用

    `logic:iterate` 是 Struts 标签库中的一个重要组成部分,主要用于在 JSP 页面中循环遍历集合对象(如 List、Array 或 Map 等)。它能够有效地帮助开发者在前端展示动态数据,尤其适用于需要在页面上显示列表或集合...

    ibatis标签

    标题中的“ibatis<iterate>标签”指的是在iBATIS框架中用于动态SQL的一个关键功能。iBATIS是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`<iterate>`标签是iBATIS提供的一个...

    struts-logic iterate标签学习指南

    Struts-Logic Iterate标签是Apache Struts框架中的一个重要组件,用于在JSP页面中迭代集合对象,如数组、列表或Map。这个标签提供了一种简洁的方式来遍历数据,并且可以与Struts的其他标签(如`bean:write`)配合...

    ibatis list

    通过`<iterate>`标签,可以为每个用户对象动态生成一条插入语句,从而一次性插入多条记录。 ### 总结 iBatis框架的`<iterate>`标签提供了强大的动态SQL生成能力,特别是在批量数据操作方面。通过合理设置`property...

    jsp脚本和标签:实现循环和分支逻辑

    jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑

    logic:iterate产生问题的图

    logic:iterate 产生问题的图

    数据库管理与应用 8.4.6 ITERATE语句.pdf

    数据库管理与应用 8.4.6 ITERATE语句.pdf 学习资料 复习资料 教学资源

    logic:iterate标签当遍历的collection为Map时的使用

    Map里存放的是List时 <br><logic:iterate id="destMap" name="srcMap"> <br> <logic:iterate id="bean" name="destMap" property="value" /> <br> <bean:write name="bean" property="name" /><br> ...

    c模拟c++ stl list

    我们可以通过提供一些辅助函数来遍历链表,比如`list_iterate`,它可以接受一个回调函数,每次遍历到一个节点时调用这个回调。 4. **兼容性**:由于C语言不支持模板,我们不能像C++那样创建泛型容器。因此,`list`...

    Struts中List里嵌套Map

    最后,虽然提供的文件名称是“查看消费记录.doc”,但这似乎与Struts中List嵌套Map的主题不直接相关。通常,消费记录可能涉及数据库操作、报表生成等,这部分内容超出了当前主题,因此在此不做深入探讨。如果你需要...

    random-iterate:以随机顺序迭代列表中的值

    随机迭代 以随机顺序迭代列表中的值 npm install random-iterate 用法 var iterate = require ( 'random-iterate' ) var ite = iterate ( [ 1 ,... log ( ite ( ) ) // returns null (end of list) 执照 麻省理工学院

    sor_iterate.rar_SOR_fortran code

    本压缩包"Sor_iterate.rar"包含了一个用Fortran编写的SOR方法实现,文件名为"sor_iterate.f90"。 Fortran是一种广泛用于科学计算的编程语言,以其高效和简洁的语法深受科研人员喜爱。在"sor_iterate.f90"中,我们...

    Iterating through List Containers关于List容器的话题(5KB)

    而数组为基础的List(如Java的ArrayList)在已知索引的情况下,访问速度更快。 6. **异常安全**:在遍历过程中,如果遇到异常,确保迭代器的状态不会破坏容器的完整性,这是编写健壮代码的重要方面。 7. **遍历...

    list的分批处理实现的几种方式.docx

    首先创建一个模拟的`List`,然后定义每批处理的记录数量`partialLimit`。如果`partialLimit`小于`dataList`的大小,则可以通过循环计算出所需批次,并使用`subList()`截取并处理每批数据。处理完每批数据后,需要...

    Hibernate教程24_Hibernate的补充_list与iterator

    【标题】"Hibernate教程24_Hibernate的补充_list与iterator" 在Java开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了数据库操作。本教程将重点讲解在使用Hibernate时,如何处理查询结果集合...

    struts+hibernate查询所有记录

    为了实现Struts与Hibernate结合查询所有记录的功能,我们需要理解以下几个核心概念: 1. **DAO(Data Access Object)模式**:这是一种设计模式,用于封装对数据源访问的所有细节,包括查询、更新等操作。在本案例...

    Iterate Doc

    "Iterate Doc" 是一个关于如何遍历和操作最近文档的源代码示例,主要针对的是Visual C++(VC)编程环境。这个项目可能包含了在Windows应用程序中管理和显示用户最近打开过的文档列表的功能。让我们详细地探讨一下...

Global site tag (gtag.js) - Google Analytics