问题描述
我正在寻找SQL Plus中的设置,该设置将允许将数据从一个大表中提取到多个文件中,而不是单个文件中。我目前使用UNIX的拆分命令,但它增加了我的整体处理时间,并希望假脱机可以在文件生成时拆分文件。文件大小可以由记录数决定。示例: 每个文件中的100万记录。
# UNIX拆分:
split -l 1000000 -a 10 spool_file
# set command used set headsep off termout off pagesize 0 arraysize 5000 trimspool on feedback off set lin 2000 spool spool_file # SQL to extract from single table SELECT /* parallel(4) */ ... ... FROM table; spool off
# UNIX拆分:
split -l 1000000 -a 10 spool_file
专家解答
假脱机一次写入一个文件。因此,要将假脱机到单独的文件,请查询前N % 的行并将假脱机到文件1。将下一个N % 假脱机到文件2等。
要并行运行,您可以有一个主脚本,调用其他脚本,在后台运行它们。例如:
由于所有查询将在不同的时间开始,这可能会导致读取一致性问题 (如果在进程开始时行更改)。
要并行运行,您可以有一个主脚本,调用其他脚本,在后台运行它们。例如:
file_1.sh & file_2.sh & file_3.sh & #etc
由于所有查询将在不同的时间开始,这可能会导致读取一致性问题 (如果在进程开始时行更改)。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




