我目前正在做一个学术基准测试,TPC-H,我有一些大表,我想使用直接路径(效果很好并且非常快)和传统路径加载。
为此,我使用了这个批处理脚本:
for /F "tokens=1,2" %%A in (table4_records.txt) do (
sqlldr userid='tpch/tpch' control=%%A.ctl rows=%%B bindsize=? readsize=? SILENT=HEADER log=bulkload_logs\sf4\bulk_%%A%1.log
)
问题是,无论我为 bindsize 和/或 readsize 选项赋予什么值,它总是从 65534 行提交到 65534 行。我已经通过了 %%B 大小,这是每个表的确切行数。
在直接加载中,我只是在加载孔表后真正使用了行和提交。
我想做类似的事情,但使用传统的加载路径 - 我知道这并不快,但这就是重点。
您能否告诉我如何提供正确的参数,以便我可以: 1- 一次加载尽可能多的数据;
2-提交频率较低,最好在表加载结束时提交。
以下是表的名称和行数:
lineitem 23996604 -> 是最大的,大约有。3GB 磁盘
订单 6000000零件供应
3200000
零件 800000
客户 600000
供应商 40000
国家 25
地区 5