请教hibernate的性能问题?

594king 2006-08-24 09:52:42
初学hibernate有几个问题请教,
1 是否应为程序只定义一个SessionFactory对象,在程序启动时作好初始化工作,以后的所有操作均通过其进行?
2 我的应用程序需要连续几个月或几年不关机运行,并会频繁操作数据库但数据量不大,请问hibernate会不会产生性能问题,比如读库或写库时快时慢等?
3 为什么初始化SessionFactory对象时有点慢呢,我用的是sqlserver2000??
...全文
207 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
minimu 2006-08-24
就3补充一点,我一直有个想法xml配置文件->流->数据库;在初始化的时候直接数据库->流->内存,不需要再去解析xml文件,因为文件io是一个很耗费资源的过程,而且每个xml文件的解析也是耗费资源的操作

不过这需要改动hibernate的源码,...是否需要,自己斟酌了
回复
minimu 2006-08-24
1 是否应为程序只定义一个SessionFactory对象,在程序启动时作好初始化工作,以后的所有操作均通过其进行?
>>>推荐这么作

2 我的应用程序需要连续几个月或几年不关机运行,并会频繁操作数据库但数据量不大,请问hibernate会不会产生性能问题,比如读库或写库时快时慢等?
>>>长时间不关机和hibernate没有关系,只是作应用的使用一定注意释放资源;Hibernate的性能比不上直接用连接池+JDBC直接访问,但是这点效率的损失在不是海量数据的时候应该不是大问题,你本身应用的实际比这个重要

3 为什么初始化SessionFactory对象时有点慢呢,我用的是sqlserver2000??
>>>貌似SessionFactory是一个重型构建,但是这个只是在系统初始化或者应用服务器启动的时候初始化一次,应该没有什么问题;就如用户可以接收WebSphere启动时漫长的初始化过程一样
回复
kevinliuu 2006-08-24
1、3是一个问题,因为hibernate的SessionFactory是一个重量级组建,在创建的时候会比较慢,因为会读入所有的hbm.xml文件,所以是以初始化时做,并且仅此一个对象供全局使用
回复
TinyJimmy 2006-08-24
问题不大, 初始化需要检查数据库, 慢些可以理解. 只要程序逻辑OK. 一般的访问还是没有问题的
回复
waterborn 2006-08-24
关注,MARK
回复
594king 2006-08-24
感谢
回复
发动态
发帖子
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
社区公告
暂无公告