我必须设计一个Web应用程序,从一个巨大的单个表中检索数据,其中有40列和几千行用于选择查询,而少数行/列用于更新。
请您建议我,为了更快的性能,使用Hibernate是否可行,因为我只有单个表并且没有任何连接? 或者我应该使用jdbc dao?
数据库:sql server 2008 java 7
答案 0 :(得分:1)
如果正确使用Hibernate,则获取任意大的结果集没有问题。只需避免from
次查询(使用select ... from ...
查询)并使用ScrollableResults
即可。如果你使用普通的JDBC,你将能够更快地开始,因为需要首先配置Hibernate,你需要编写映射文件等,但稍后它可能会有所回报,因为你编写的代码会更简单。 Hibernate非常擅长从客户端代码中取出样板文件。
答案 1 :(得分:0)
如果要检索数千条记录并且无法进行分页,则可能是性能问题。因为hibernate会创建一个针对每个人的对象并将其存储在持久化上下文中。如果创建太多对象,则会占用大量内存。对于这些类型的操作,JDBC更好。有关类似的讨论,请参阅Hibernate performance issues using huge databases