Hi All,<br><br>I know that I am comparing apples to oranges here. But I am surprised to find that a simple Hibernate query (&quot;from Photoset p&quot;) takes 4 times as much time as JDBC. I know that there is overhead involved with the benefits that Hibernate offers. But don&#39;t you think 4 times is just too slow? Please let me know if there is a way to get a better performance out of Hibernate. Thank you!<br>
<br>Here are the results: <br><br># Records: 5000<br>
<br>
# Mapped Columns: 2<br>
Hibernate Query / Plain JDBC: 560 ms / 150 ms<br><br>
# Mapped Columns: 3<br>
Hibernate Query / Plain JDBC: 1200 ms / 270 ms<br>
<br>
# Mapped Columns: 5<br>
Hibernate Query / Plain JDBC: 1680 ms / 390 ms<br>
<br>
Thanks,<br>Joe<br><br>/* Hibernate Code */<br>Session session = sessionFactory.openSession();<br>Transaction tx = session.beginTransaction();<br><br>Date beginTime = new Date();<br><br>Query query = session.createQuery(&quot;from Photoset p&quot;);<br>
List&lt;Photoset&gt; photosets = query.list();<br>System.out.println(photosets.size() + &quot; photoset(s) found:&quot;);<br><br>Date endTime = new Date();<br><br>tx.commit();<br>session.close();<br>System.out.println(&quot;Total Time Taken: &quot; + (endTime.getTime() - beginTime.getTime()) + &quot; ms&quot;);<br>
<br><br>/* Photoset.hbm.xml - Hibernate Mapping file */<br>&lt;hibernate-mapping&gt;<br>    &lt;class name=&quot;Photoset&quot; table=&quot;pub.fotoset&quot;&gt;<br>        &lt;id name=&quot;id&quot; column=&quot;fotosetnum&quot;&gt;<br>
            &lt;generator class=&quot;sequence&quot;&gt;<br>                &lt;param name=&quot;sequence&quot;&gt;pub.nextfotosetnum&lt;/param&gt;<br>            &lt;/generator&gt;<br>        &lt;/id&gt;<br>        <br>        &lt;property name=&quot;title&quot; column=&quot;fotosettitle&quot; /&gt;<br>
    &lt;/class&gt;<br>&lt;/hibernate-mapping&gt;<br><br><br>/* Photoset.java */<br>public class Photoset {<br>    private Long id;<br>    private String title;<br>    <br>    Photoset() {} <br>    <br>    public Photoset (String title) {<br>
        this.title = title;<br>    }<br>    <br>    public Long getId() {<br>        return id;<br>    }<br>    public void setId(Long id) {<br>        <a href="http://this.id">this.id</a> = id;<br>    }<br>    <br>    public String getTitle() {<br>
        return title;<br>    }<br>    public void setTitle(String title) {<br>        this.title = title;<br>    }<br>}<br><br>/* JDBC Code that runs 4 times faster */<br>Date beginTime = new Date();<br><br>PreparedStatement pstmt = con.prepareStatement(&quot;select fotosetnum, fotosetitle from pub.fotoset&quot;);<br>
ResultSet rs = pstmt.executeQuery();<br>int numFotosets = 0;<br>while (rs != null &amp;&amp; rs.next()) {<br>    Photoset photoset = new Photoset();<br>    photoset.setId(rs.getLong(1));<br>    photoset.setTitle(rs.getString(2));<br>
    numFotosets++;<br>}<br>rs.close();<br>System.out.println(&quot;# Photosets:&quot; + numFotosets);<br><br>Date endTime = new Date();<br>System.out.println(&quot;Total Time Taken: &quot; + (endTime.getTime() - beginTime.getTime()) + &quot; ms&quot;);<br>
<br><br>