【发布时间】:2014-07-05 10:21:40
【问题描述】:
我正在将多批数据 (~40 MB) 并行加载到 Oracle DB。我注意到在这种情况下并行 Oracle 提交到 DB 的速度非常慢。但是单次提交要快得多。 看起来这个问题与 Oracle 重做日志文件或日志文件同步有关。 你能帮忙解决这个问题吗?
【问题讨论】:
-
“并行 Oracle 提交”对您意味着什么?您确定问题不只是您的并行处理没有按照您想要的方式扩展吗?是什么让你相信提交是让你慢下来的操作?您是否有一些 AWR/Statspack 报告让您相信这一点?你是说每个线程加载 40 MB 的一批数据,然后发出一个提交?你有多少并发线程,你加载了多少数据,你提交了多少次?
-
我有 5 个 Java 进程。它们中的每一个都执行数据加载,最后将操作加载到事务中。每个进程有一个事务。我正在调试执行数据加载的 java 类,并且在提交方法调用上花费了很多时间(在这种情况下约为 5 分钟)
-
数据库正在等待什么等待事件?每个 Java 进程都发出一个提交吗?所以你描述的情况是,如果总共有 1 次提交,事情会很快,但是当你现在总共只有 5 次提交时,你的过程很慢?
-
是的。每个 Java 进程发出一个提交。是的。对我来说,一个进程中的 100MB 单次提交比每 5 个进程提交 20MB 快。
-
数据库在等待什么?
标签: database oracle commit redo