我将数据插入到Oracle的两个表中.table_1行大小为912 Byte。table_2行大小为335 Byte。
对于table_1,我将插入263520000行数据。因此,table_1的大小为223.8Gb。
对于table_2,我将插入27816000行数据。因此,table_2的大小为8.678Gb。
我使用两个Java进程,没有100个进程的进程。所以,我想知道将所有数据插入数据库需要多长时间?
答案 0 :(得分:1)
为了让您了解使用正确的工具和正确的算法(即基于集合;直接路径;并行性)完成可以 ben完成的内容,我只加载了超过7亿行(跨越三个表),大约1 TB的文件,大约10分钟。
答案 1 :(得分:0)
已发布的基准可能有助于为您提供球场图。
Here's one article可能相关。
请注意,该文章引用了各种技术,包括批量加载工具。我强烈建议您调查使用此类工具。一个简单的Java程序
for each record
read data
write to database
可能明显慢于此类工具,尤其是因为您将每次插入使用一个事务。
答案 2 :(得分:0)
正如评论中已经提到的,这在很大程度上取决于您的系统。有索引吗?你是直接路径负载吗?你使用什么样的存储,具体来说,你是连接存储还是SAN,是SAN旋转磁盘还是固态?为了得到你的问题的答案,同样如上所述,你必须测试满载才能得到答案,或者用一部分数据测试负载并推断出来。
如果你需要加载数百万行的100个,那么使用Java可能不是最好的解决方案吗?存在其他数据导入选项以加载比java更好的数据。 SQL loader和datapump命名一对。