SQL*Loader能否实现,只连接一次DB,导入多次?

[复制链接]
查看11 | 回复9 | 2013-10-30 05:51:12 | 显示全部楼层 |阅读模式
SQL*Loader能否实现,只连接一次DB,导入多次?
比如如下两次SQLLDR,要执行两次连接/退出数据库
sqlldr userid=user/pass control=test1.ctl
sqlldr userid=user/pass control=test2.ctl
能否只连接一次,然后导入2次(两个不同的阿控制文件)?
谢谢

回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
为什么要控制只连接一次?
相比导数,连接的消耗极小
回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
皇家救星 发表于 2013-10-27 08:23
为什么要控制只连接一次?
相比导数,连接的消耗极小

连接的消耗很大,每次至少100~300毫秒
而我1秒可以导入至少30万行(字段不多,行长较短)了,也就是100毫秒至少可以到3万行了
我有很多不同格式的文件,至少50种格式,现在写了50个控制文件,连接了50次,导入50次

回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
好像控制文件里的多表导入可以,但是不知道加了when是否会性能下降
回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
mehelpless 发表于 2013-10-27 08:36
连接的消耗很大,每次至少100~300毫秒
而我1秒可以导入至少30万行(字段不多,行长较短)了,也就是100毫秒 ...

那是你导入文件的数据极小了?3w行的差异而已
另外,你的性能要求是什么样的 100毫秒都计较?
回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
你这种情况最适宜自己写程序导入了。
一次导入多个不算太大的表(文件)。
频繁的运行,可以使用连接池,保证数据库的长连接。
回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
yulihua49 发表于 2013-10-27 20:31
你这种情况最适宜自己写程序导入了。
一次导入多个不算太大的表(文件)。
频繁的运行,可以使用连接池, ...

有一个问题,自己写的程序能实现sqlldr的direct=true的功能吗
lz效率要求这么高,肯定要有用这个参数的
我不知道api有没有这个,但以前我用的一个封装库,是没有这个功能的
回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
sqlldr能不能利用连接池,一次连接多次执行sqlldr?谢谢
回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
yulihua49 发表于 2013-10-27 20:31
你这种情况最适宜自己写程序导入了。
一次导入多个不算太大的表(文件)。
频繁的运行,可以使用连接池, ...

谢谢,sqlldr 应该是我所知道最快的外部数据导入数据库的工具了,其他的不清楚

回复

使用道具 举报

千问 | 2013-10-30 05:51:12 | 显示全部楼层
我发现开机后,SQLLDR第一次启动执行特别慢,整整花了近4秒,而只导入1行
第二次执行就快了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行