达梦数据库之HUGE表

HUGE表是一种列存储表,其建立在HUGE FILE SYSTEM(HFS)机制上。HFS是达梦数据库对海量数据进行分析的一种高效、简单的列存储机制。

HUGE表存储在HTS(HUGE TABLESPACE)表空间上,最多可以创建32767个HUGE表空间。默认的HUGE表空间是HMAIN。查看HUGE表空间的SQL语句如下:

SQL> select * from v$HUGE_TABLESPACE;

行号 ID NAME PATHNAME DIR_NUM COPY_NUM SIZE_MODE

---------- ----------- ---- ------------------------------- ----------- ----------- ---------

1 4 MAIN /home/dmdba/dmdbms/DAMENG/HMAIN 1 NULL NULL

已用时间: 2.030(毫秒). 执行号:2700.

HUGE表空间与普通表空间不同:

1、对于普通表空间,数据是通过段、粗、页来管理的,并且是固定大小(4k、8k、16k、32k)的页为管理单位。

2、HUGE表空间是通过HFS存储机制来管理的。HTS本质上是一个空的文件目录。在创建HUGE表并插入数据时,数据库会在指定的HTS表空间目录下创建一系列的目录及文件。

达梦数据库支持两种类型的HUGE表:非事务型HUGE表和事务型HUGE表。

创建HUGE表空间的SQL语句如下。这里不使用默认的HUGE表空间HMAIN。

SQL> create huge tablespace htbs path '/home/dmdba/dmdbms/DAMENG/htbs';

操作已执行

已用时间: 85.644(毫秒). 执行号:2704.

创建语句中的PATH关键字需注意。

查看:

select * from v$huge_tablespace;

删除HUGE表空间的SQL语句如下:

drop huge tablespace htbs;

创建HUGE表:

SQL> create huge table h_dave(a int,b int) storage(with delta,on htbs);

操作已执行

已用时间: 18.169(毫秒). 执行号:2706.

查看创建语句:

call sp_tabledef('SYSDBA','H_DAVE');

HUGE表与普通表一样,可以进行增、删、改操作。但是HUGE表的删除与更新操作的效率会比较低,因此在HUGE表中不宜做频繁的删除及更新操作。

SQL> create huge table h_ustc storage(on htbs) as select * from test where 1=2;

操作已执行

已用时间: 60.265(毫秒). 执行号:2708.

SQL> insert into h_ustc select * from test;

影响行数 159936

已用时间: 00:00:01.615. 执行号:2709.

SQL> delete from h_ustc;

影响行数 159936

已用时间: 7.429(毫秒). 执行号:2710.

SQL> commit;

操作已执行

已用时间: 1.137(毫秒). 执行号:2711.

SQL> select count(*) from h_ustc;

行号 COUNT(*)

---------- --------------------

1 0

已用时间: 0.917(毫秒). 执行号:2712.

SQL> insert into h_ustc select * from h_ustc;

影响行数 639744

已用时间: 00:00:08.633. 执行号:2722.

SQL> insert into t_ustc select * from t_ustc;

影响行数 639744

已用时间: 00:00:07.726. 执行号:2729.

可以看出在插入数据的时候 HUGE表的速度略慢,普通表的略快。随着数据量的增多应该会更明显

SQL> delete from t_ustc;

影响行数 1279488

已用时间: 00:00:03.426. 执行号:2730.

SQL> delete from h_ustc;

影响行数 1279488

已用时间: 39.075(毫秒). 执行号:2731.

测试删除数据,HUGE表这么快?

HUGE表的存储:

SQL> create huge table h_ustc storage(on htbs) as select * from test where 1=2;

操作已执行

已用时间: 23.277(毫秒). 执行号:2741

[dmdba@localhost SCH150994945]$ pwd

/home/dmdba/dmdbms/DAMENG/htbs/SCH150994945

[dmdba@localhost SCH150994945]$ ls

TAB2000

[dmdba@localhost SCH150994945]$

[dmdba@localhost SCH150994945]$ cd TAB2000/

[dmdba@localhost TAB2000]$ ls

SQL> insert into h_ustc select * from test;

影响行数 159936

已用时间: 253.708(毫秒). 执行号:2742.

[dmdba@localhost TAB2000]$ ll

total 1114112

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0000_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0001_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0002_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0003_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0004_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0005_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0006_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0007_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0008_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0009_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0010_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0011_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0012_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0013_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0014_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0015_0000000000.dta

-rw-r--r-- 1 dmdba dinstall 67108864 Sep 13 09:49 COL0016_0000000000.dta

SQL> desc h_ustc;

行号 NAME TYPE$ NULLABLE

---------- -------- ------------ --------

1 NAME VARCHAR(128) N

2 ID INTEGER N

3 SCHID INTEGER N

4 TYPE$ VARCHAR(10) N

5 SUBTYPE$ VARCHAR(10) Y

6 PID INTEGER Y

7 VERSION INTEGER N

8 CRTDATE DATETIME(6) Y

9 INFO1 INTEGER Y

10 INFO2 INTEGER Y

11 INFO3 BIGINT Y

行号 NAME TYPE$ NULLABLE

---------- ----- --------------- --------

12 INFO4 BIGINT Y

13 INFO5 VARBINARY(128) Y

14 INFO6 VARBINARY(2048) Y

15 INFO7 BIGINT Y

16 INFO8 VARBINARY(1024) Y

17 VALID CHAR(1) Y

17 rows got

这里我们可以总结其实底层就是为每一列建立了一个文件。

删除一个文件试试:

[dmdba@localhost TAB1957]$ rm -rf COL0005_0000000000.dta

已用时间: 2.369(毫秒). 执行号:2746.

SQL> insert into h_ustc select * from test;

影响行数 159936

已用时间: 231.124(毫秒). 执行号:2747.

SQL> commit;

尽然可以插入!

重启数据库查看,这时就查不到了,报HUGE数据表文件丢失。应该是文件句柄前面还在导致。

(截图不好上传)

我们strings 看一下:

strings COL0016_0000000000.dta

YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYNNNN

可以在数据库里查看这一列内容,完全匹配。

社区地址:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
达梦数据库中,模式和空间是两个不同的概念。模式是数据库对象的集合,包括、视图、索引等。而空间是用来存储数据库对象的物理空间。 在达梦数据库中,可以通过创建空间来为数据库对象提供存储空间。空间可以分为普通空间和混合空间。普通空间只能存储普通(非HUGE),而混合空间既可以存储普通又可以存储HUGE。\[1\] 创建空间可以使用CREATE TABLESPACE语句,可以指定空间的数据文件路径、大小以及自动扩展的设置。例如,可以使用以下语句创建一个空间并设置自动扩展,每次扩展1M,最大为100M: CREATE TABLESPACE TS2 DATAFILE '/mds6800/damengdb/db/DAMENG/TS2.dbf' SIZE 128 AUTOEXTEND ON NEXT 1 MAXSIZE 100;\[3\] 需要注意的是,空间的创建、修改和删除等操作都是在数据库管理员权限下进行的。\[2\] #### 引用[.reference_title] - *1* *2* [达梦非模式对象—空间、用户、角色、权限](https://blog.csdn.net/Nelson_S/article/details/124375902)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [达梦数据库创建空间,用户,模式](https://blog.csdn.net/qq_24011271/article/details/120101644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值