【发布时间】:2012-03-07 14:30:43
【问题描述】:
将大量数据从 Oracle 数据库转换为 Java 对象的最快方法是什么。
对于数据的组织方式,有什么 Oracle 技巧吗?
我正在考虑使用纯 JDBC 而不是任何 Hibernate 样式库?
让 Oracle 生成一个文件然后从文件中读取会更好吗?尽管这必须以编程方式完成。
感谢所有想法。
【问题讨论】:
-
我想我会设置一个多线程 JDBC 客户端来读取批量数据。您是要序列化 java 对象还是只是将它们保存在内存中?
-
我怀疑您是否可以编写一个能够击败 Hibernate 性能的 JDBC 库。确保在您打算访问的所有表上定义适当的索引。
-
@Perception,哇。我们有一个基于 Hibernate 多年的大规模生产服务器产品。最终,可扩展性把我们赶走了。 Hibernate(和任何 JPA)会生成一些非常荒谬的查询。手写 SQL 可以执行好几个数量级。如果您从一个表中插入或检索平面对象,也许 Hibernate 可以(几乎)匹配手写 SQL,但是一旦您将集合放入混合中,就忘了它。对于那些基本上 CRUD 将 ppl 类型输入表单并塞入数据库的应用程序来说,这很好,但不是严肃的数据处理。
-
我支持“多快?”的问题。多少钱?”。应用程序是否位于同一个盒子上,等等。这个问题需要更多细节才能得到好的答案。
-
@brettw - 我的回答与 OP 的问题一样通用。很明显,您构建实体的方式将对性能产生巨大的影响。大多数嵌套集合的幼稚实现都使用急切获取的 SELECT,而延迟获取的 BATCH 调用或 SUBSELECT 会显着提高性能。
标签: java performance oracle