暂无图片
oracle sqlloader加载一个大文件是先把大文件一次性读取到内存中?
我来答
分享
手机用户1951
2021-10-25
oracle sqlloader加载一个大文件是先把大文件一次性读取到内存中?

各位大佬 ,请教下 oracle sql loader 加载2G的txt文件,总共1000万行,如果设置了 参数row=10000 和 bindsize=20m 的情况下

想请问的是,先把这个2G的文件一次性读取到内存中么?

row=10000 和 bindsize=20m  提交插入表?

谢谢

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
薛晓刚

我个人觉得可能直接写数据文件。

暂无图片 评论
暂无图片 有用 0
手机用户1951

想问的是,sqlloader 一个2G的文件,先是把这个文件读到内存中么?

暂无图片 评论
暂无图片 有用 0
JiekeXu
暂无图片

没做过这样的实验还真不清楚,不过可以试想一下如果我的内存只有1G要加载2G的文件是会报错吗?如果文件 100G 内存 2G 也不会一次性加载进去,所以我觉得不是一次性全部加载进内存,应该是根据 BINDSIZE 设定的大小去加载处理的。有可能不对,我也没法证明。。。

ROW:对于传统常规路径(Conventional Path)导入的情况,代表一次提交(Commit)的行数(默认:6 最大值:65534)。

BINDSIZE:每次提交记录的缓冲区的最大值(仅适用于传统常规路径加载),默认256000 Bytes。

通过BINDSIZE的设定,要比默认值和通过参数ROWS计算的缓冲区大小更优先。即BINDSIZE能够制约ROWS,如果ROWS提交的数据需要的缓冲区大于BINDSIZE的设定,会以BINDSIZE的设定为准。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏