达梦数据库huge表与普通表插入性能对比

一、huge表介绍

huge是一种存储在hdfs文件系统上的列式存储结果,适合海量数据分析查询,虽然支持事务,对于删改通过辅助表记录 因此不适合频繁增删改,可查看达梦系统管理员手册第十六章具体了解。

二、开始测试

数据说明:数据一共200w左右,大小318M,已使用dmfldr导出到文本中,这里用dmfldr快速装载测试插入性能

2.1  创建普通表

CREATE TABLE "SYSDBA"."test1"
(
"a" VARCHAR(100) NOT NULL,
"b" VARCHAR(20),
"c" VARCHAR(100),
"d" VARCHAR(100),
"e" VARCHAR(1000),
"f" VARCHAR(40),
"g" VARCHAR(200),
"h" VARCHAR(200),
"j" TIMESTAMP(0)) STORAGE(ON "MAIN", CLUSTERBTR) ;
D:\dmsoft_data\8_1_3_26pick18\dmdbms\bin>dmfldr.exe userid=SYSDBA/SYSDBA@localhost:8326 MODE='IN' table=TEST1 data='D:\dmsoft_data\fldr\test.txt'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:GBK



数据文件共1个:
D:\dmsoft_data\fldr\test.txt

错误文件:fldr.bad

目标表:TEST1

列名                                                                                                                             包装数据类型         终止
a                                                                                                                                CHARACTER            |
b                                                                                                                                CHARACTER            |
c                                                                                                                                CHARACTER            |
d                                                                                                                                CHARACTER            |
e                                                                                                                                CHARACTER            |
f                                                                                                                                CHARACTER            |
g                                                                                                                                CHARACTER            |
h                                                                                                                                CHARACTER            |
j                                                                                                                                CHARACTER            |

行缓冲区数量: 8
任务线程数量: 8

62851行记录已提交
125675行记录已提交
188711行记录已提交
252410行记录已提交
314987行记录已提交
377728行记录已提交
440728行记录已提交
504043行记录已提交
567342行记录已提交
630432行记录已提交
694455行记录已提交
758136行记录已提交
822295行记录已提交
885777行记录已提交
950251行记录已提交
1013783行记录已提交
1079359行记录已提交
1145073行记录已提交
1210945行记录已提交
1274488行记录已提交
1338989行记录已提交
1402152行记录已提交
1465694行记录已提交
数据文件少列
数据文件少列
1528834行记录已提交
1592836行记录已提交
1655964行记录已提交
1718195行记录已提交
1780399行记录已提交
1843874行记录已提交
1906891行记录已提交
1970561行记录已提交
2027488行记录已提交

目标表:TEST1
load success.
失败原因: 数据文件少列
2027488 行加载成功。
4 行由于数据错误没有加载。
2 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:2027492
拒绝的逻辑记录总数:4

15964.939(ms)已使用

2.2  创建huge表

不记录日志,普通表必须记录

CREATE HUGE TABLE "SYSDBA"."testhuge1"
(
"a" VARCHAR(100),
"b" VARCHAR(20),
"c" VARCHAR(100),
"d" VARCHAR(100),
"e" VARCHAR(1000),
"f" VARCHAR(40),
"h" VARCHAR(200),
"j" VARCHAR(200),
"k" TIMESTAMP(0)) STORAGE(STAT ASYNCHRONOUS, WITH DELTA, SECTION(65536), INITIAL 2, FILESIZE(64), ON "MAIN")  LOG NONE ;

插入数据,12773.090(ms)已使用



D:\dmsoft_data\8_1_3_26pick18\dmdbms\bin>dmfldr.exe userid=SYSDBA/SYSDBA@localhost:8326 MODE='IN' table=TESTHUGE1 data='D:\dmsoft_data\fldr\test.txt'
dmfldr V8
控制文件:

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:Yes

是否插入自增列:No

数据是否已按照聚集索引排序:No

字符集:GBK



数据文件共1个:
D:\dmsoft_data\fldr\test.txt

错误文件:fldr.bad

目标表:TESTHUGE1

列名                                                                                                                             包装数据类型         终止
a                                                                                                                                CHARACTER            |
b                                                                                                                                CHARACTER            |
c                                                                                                                                CHARACTER            |
d                                                                                                                                CHARACTER            |
e                                                                                                                                CHARACTER            |
f                                                                                                                                CHARACTER            |
h                                                                                                                                CHARACTER            |
j                                                                                                                                CHARACTER            |
k                                                                                                                                CHARACTER            |

行缓冲区数量: 8
任务线程数量: 8

62851行记录已提交
125675行记录已提交
188711行记录已提交
252410行记录已提交
314987行记录已提交
377728行记录已提交
440728行记录已提交
504043行记录已提交
567342行记录已提交
630432行记录已提交
694455行记录已提交
758136行记录已提交
822295行记录已提交
885777行记录已提交
950251行记录已提交
1013783行记录已提交
1079359行记录已提交
1145073行记录已提交
1210945行记录已提交
1274488行记录已提交
1338989行记录已提交
1402152行记录已提交
1465694行记录已提交
1528834行记录已提交
数据文件少列
数据文件少列
1592836行记录已提交
1655964行记录已提交
1718195行记录已提交
1780399行记录已提交
1843874行记录已提交
1906891行记录已提交
1970561行记录已提交
2027488行记录已提交

目标表:TESTHUGE1
load success.
失败原因: 数据文件少列
2027488 行加载成功。
4 行由于数据错误没有加载。
2 行由于数据格式错误被丢弃。

跳过的逻辑记录总数:0
读取的逻辑记录总数:2027492
拒绝的逻辑记录总数:4

12773.090(ms)已使用

2.3 总结

普通表:15964.939(ms)已使用

huge表:12773.090(ms)已使用

插入性能相差是在huge表可以设置不记录日志。

另外做一些聚合查询对比

huge表

sselect count(*),h from testhuge1 group by h;
执行成功, 执行耗时853毫秒. 执行号:3738

普通表

select count(*),h from test1 group by h;
执行成功, 执行耗时5秒 509毫秒. 执行号:3739

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值