在pro*c用insert插入记录的效率问题.
我知道有两种方法向数据库表里插入数据.
第一种方法是将要插入的数据存在map里,然后循环从map里取出一条数据用下面语句插入表:
EXEC SQL INSERT INTO table_name(.....) VALUES(....);
第二种方法是将要插入的数据写成oracle的控制文件,然后用sqlldr将这个控制文件里的数据导入表中.
假设要插入的数据量一样,我想知道这两种方法那种效率高些?不考虑从map循环取数据的时间,只考虑执行EXEC SQL INSERT ..和执行sqlldr两都所用的时间.
另外,用这两种方法执行所用的时间跟要插入的数据量有没有关系?
[解决办法]
sqlldr
这个效率高,写入时不执行合法性等校验