处理1.15亿条记录以插入Oracle的性能优化 [英] Performance optimization for processing of 115 million records for inserting into Oracle

查看:15
本文介绍了处理1.15亿条记录以插入Oracle的性能优化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个要求,即我要读取放在Unix中的19 GB大小的文本文件,并且具有大约1.15亿条记录。文件放置到位置后,Autosys和Shell脚本将触发我的Spring批处理(启动器)。

最初执行此过程时,读取、处理(Null检查和日期分析)以及将数据写入Oracle数据库大约需要72小时。

但在进行了某些配置更改(如使用Throttle Limit、Task Executor等)后,我目前能够将执行时间减少到28小时。 我需要这个过程在4小时内完成,另外,使用SQL加载器单独使用,我在35分钟内完成工作。但是我只能用春装。

谁能告诉我,用春批能否在4小时内完成这项工作?实现这一目标的最佳方式是什么?

DB2

在我参与的一个项目中,我们必须将50亿条记录从推荐答案传输到Oracle。具有相当复杂的转换逻辑。在转换过程中,数据在不同的文件中保存了大约4次。我们能够在Oracle数据库中插入一行约50‘000条记录的数据。从这个角度看,在4小时内完成似乎是现实的。

您没有说明您的瓶颈到底在哪里,但这里有一些想法。

  1. 并行化-您是否可以将文件拆分成块,这些块可以并行处理,例如我们作业的几个实例?
  2. 区块大小-我们在写入Oracle时使用的区块大小为5,000到10000
  3. 删除不必要的数据解析,特别是日期/时间戳解析-例如,我们的数据中有很多时间戳,但它们与处理逻辑无关。因为我们必须在处理过程中多次从文件读取它们和将它们写入文件,所以我们没有解析,我们只保留了字符串表示。而且,很多时间戳都有特殊的值,比如1.1.0001 00:00:00.000000或31.12.9999 23.59.59.000000,我们用LD或HD(表示低日期和高日期)来表示它们。

HTH。

这篇关于处理1.15亿条记录以插入Oracle的性能优化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆