目录
3,parallel=4 filesize=200M 00:00:49
4,parallel=4 filesize=325M 00:00:47
5,parallel=4 filesize=324M 00:00:48
6,parallel=5 filesize=244M 00:01:42
7,parallel=3 filesize=487M 00:00:47
8,parallel=8 filesize=139M 00:02:47
一,前言
在 expdp 和 impdp 中,可以通过并行parallel来提高导出导入效率。
这个参数会受到 cpu 和 I/O 影响。所以在使用 parallel 参数时,需要在资源消耗和运行时间之间进行权衡。
查看CPU个数8
cat /proc/cpuinfo |grep "processor"|wc -l
parallel参数默认值为 1 ,当 parallel 值设置为 4 时,则表示 最多 会有四个线程处理,而不是一定会有四个线程处理,如果输出的dmp文件只有一个,那么就算 parallel=8 ,也只有一个线程在工作。
expdp 导出时加并行度参数设置:
parallel 并行度
filesize 单个文件大小的上限
dumpfile=test_%U.dmp
需要分文件执行,使得并行发挥作用,dumpfile=test_%U.dmp,%U会分文件,expdp 和 impdp 都适用。
二,测试
create or replace directory EXPDP_PATH as '/home/oracle/20221208-1/expdp'
1,不分
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test_%U.dmp logfile=test_expdp.log schemas=test_user;
972M 0 00:01:40
972M ./test_01.dmp
24K ./test_expdp.log
2,parallel=4 00:00:55
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test1_%U.dmp logfile=test1_expdp.log schemas=test_user parallel=4;
00:00:55
360M ./test1_01.dmp
1.8M ./test1_02.dmp
284M ./test1_03.dmp
328M ./test1_04.dmp
24K ./test1_expdp.log
3,parallel=4 filesize=200M 00:00:49
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test2_%U.dmp logfile=test2_expdp.log schemas=test_user parallel=4 filesize=200M;
00:00:49
201M ./test2_01.dmp
201M ./test2_02.dmp
38M ./test2_03.dmp
201M ./test2_04.dmp
120M ./test2_05.dmp
181M ./test2_06.dmp
36M ./test2_07.dmp
24K ./test2_expdp.log
4,parallel=4 filesize=325M 00:00:47
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test3_%U.dmp logfile=test3_expdp.log schemas=test_user parallel=4 filesize=325M;
00:00:47
150M ./test3_01.dmp
259M ./test3_02.dmp
246M ./test3_03.dmp
320M ./test3_04.dmp
24K ./test3_expdp.log
5,parallel=4 filesize=324M 00:00:48
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test4_%U.dmp logfile=test4_expdp.log schemas=test_user parallel=4 filesize=324M;
00:00:48
325M ./test4_01.dmp
56M ./test4_02.dmp
246M ./test4_03.dmp
320M ./test4_04.dmp
28M ./test4_05.dmp
24K ./test4_expdp.log
6,parallel=5 filesize=244M 00:01:42
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test5_%U.dmp logfile=test5_expdp.log schemas=test_user parallel=5 filesize=244M;
00:01:42
27M ./test5_01.dmp
231M ./test5_02.dmp
203M ./test5_03.dmp
233M ./test5_04.dmp
245M ./test5_05.dmp
51M ./test5_06.dmp
24K ./test5_expdp.log
7,parallel=3 filesize=487M 00:00:47
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test6_%U.dmp logfile=test6_expdp.log schemas=test_user parallel=3 filesize=487M;
00:00:47
364M ./test6_01.dmp
105M ./test6_02.dmp
488M ./test6_03.dmp
33M ./test6_04.dmp
24K ./test6_expdp.log
8, parallel=8 filesize=139M 00:02:47
expdp test_user/123456@oracle directory=EXPDP_PATH dumpfile=test7_%U.dmp logfile=test7_expdp.log schemas=test_user parallel=8 filesize=139M;
00:02:47
1.9M ./test7_01.dmp
140M ./test7_02.dmp
130M ./test7_03.dmp
140M ./test7_04.dmp
90M ./test7_05.dmp
140M ./test7_06.dmp
40M ./test7_07.dmp
138M ./test7_08.dmp
16M ./test7_09.dmp
63M ./test7_10.dmp
94M ./test7_11.dmp
24K ./test7_expdp.log
三,结论
totalsize(导出文件的总大小) = 971.78M
filesize | parallel | filesize |
不设置 | 不并行 | 00:01:40 |
487M | 3 | 00:00:47 |
不设置 | 4 | 00:00:55 |
200M | 4 | 00:00:49 |
325 M | 4 | 00:00:47 |
324M | 4 | 00:00:48 |
244M | 5 | 00:01:42 |
139M | 8 | 00:02:47 |
1,效率高的参考公式:(parallel-1) * filesize >趋向 totalsize
2,并非并行parallel越多效率越高
3,建议使用cpu数量的一半开始测试