一
【dmfldr概述】
使用dmfldr工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到DM数据库中,或把DM数据库中的数据按照一定格式写入文本文件。
dmfldr命令中USERID和控制文件两个为必选参数。USERID用来指定用户名和密码等,控制文件用来指定导入或导出的表、数据文件、行分隔符、列分隔符等信息。在数据库安装目录的bin目录下可以找到dmfldr的执行文件,在该目录下执行dmfldr help就可查看命令行参数说明。
具体语法如下:
二
【建表并生成相关文件】
本次实验是简单模拟一个数据装载并且对装载数据一致且不是单字节字符的时候,不同字符集设置对我们的装载数据效率是否会有影响进行探讨。
首先利用disql在数据库上建立一张能够匹配原始数据的表。
2.1创建表
SQL> create table ABC. test1(C1 int,C2 int,C3 date) ;
操作已执行
已用时间: 11. 074(毫秒).执行号:109.
2.2创建控制文件以及原始数据
[root@localhost bin]# vi /opt/data/ABC.
ABC. ctrl ABC. txt
[root@localhost bin]# vi /opt/data/ABC. txt
1 1 |2015-11-06
2 2|2015-11-05
3 3|2015-11 04
2.3控制文件内容如下:
三
【不同字符集情况下,导入比较】
在装载数据一致且不是单字节字符的时候,不同字符集设置对我们的装载数据效率是否会有影响,于是进行了下面操作进行试验。
3.1编码格式为GBK
运行时间:3.000(ms)
OPTIONS
(
CHARACTER CODE =’GBK’
)
LOAD DATA
INFILE' /opt/data/ABC. txt'
INTO TABLE ABC. testl
FIELDS ‘|’
(
C1 TERMINATED BY ‘’,
C2,
C3 DATE FORMAT ‘yyyy-mm-dd’
)
3.2编码格式为UTF-8
运行时间:3.792(ms)
OPTIONS
(
CHARACTER CODE =’UTF-8’
)
LOAD DATA
INFILE' /opt/data/ABC. txt'
INTO TABLE ABC. testl
FIELDS ‘|’
(
C1 TERMINATED BY ‘’,
C2,
C3 DATE FORMAT ‘yyyy-mm-dd’
)
3.3编码格式为SINGLE_BYTE
运行时间:4.458(ms)
OPTIONS
(
CHARACTER CODE =’SINGLE_BYTE’
)
LOAD DATA
INFILE' /opt/data/ABC. txt'
INTO TABLE ABC. testl
FIELDS ‘|’
(
C1 TERMINATED BY ‘’,
C2,
C3 DATE FORMAT ‘yyyy-mm-dd’
)
3.4编码格式为GB18030
运行时间:4.039(ms)
OPTIONS
(
CHARACTER CODE =’GB18030’
)
LOAD DATA
INFILE' /opt/data/ABC. txt'
INTO TABLE ABC. testl
FIELDS ‘|’
(
C1 TERMINATED BY ‘’,
C2,
C3 DATE FORMAT ‘yyyy-mm-dd’
)
四
【结语】
在相同数据条件且不是单字节字符的时候,数据的编码格式为GBK时,载入效率更高一些。