和其他DB类似,正常生产环境中,DM 达梦数据库中也是创建用户并分配对应的表空间。 因此在创建用户对象时,对象都放在用户的默认表空间下。
这里涉及到的相关概念参考之前的博客:
DM7 达梦数据库 表空间 管理 说明
https://www.cndba.cn/dave/article/3569
DM7 达梦数据库 分区表 和 分区索引 管理 说明
https://www.cndba.cn/dave/article/3587
DM7 达梦数据库 表 管理 说明
https://www.cndba.cn/dave/article/3584
我们看操作示例:
[dmdba@www.cndba.cn bin]$ disql SYSDBA/SYSDBA
Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 7.935(ms)
disql V8
SQL> create table cndba (id int,name varchar(20));
executed successfully
used time: 209.378(ms). Execute id is 20.
SQL>
SQL> select table_name,tablespace_name from dba_tables where table_name='CNDBA';
LINEID TABLE_NAME TABLESPACE_NAME
---------- ---------- ---------------
1 CNDBA MAIN
used time: 32.557(ms). Execute id is 36.
SQL>
SQL> select tablespace_name from dba_tablespaces;
LINEID TABLESPACE_NAME
---------- ---------------
1 SYSTEM
2 ROLL
3 TEMP
4 MAIN
5 dave
6 HMAIN
6 rows got
used time: 2.435(ms). Execute id is 85.
SQL>
#建表时指定表空间
SQL> create table dave(id int,name varchar(20)) storage(on "dave");
executed successfully
used time: 4.306(ms). Execute id is 81.
SQL>
SQL> select table_name,tablespace_name from dba_tables where table_name='DAVE';
LINEID TABLE_NAME TABLESPACE_NAME
---------- ---------- ---------------
1 DAVE dave
used time: 27.931(ms). Execute id is 82.
SQL>
对于分区表,操作也是类似:
SQL> create table hefei(
2 caller char(15),
3 callee char(15),
4 time datetime,
5 duration int
6 )
7 partition by range(time)(
8 partition p1 values less than ('2019-01-01'),
9 partition p2 values less than ('2019-02-01'),
10 partition p3 values less than ('2019-03-01'),
11 partition p4 values equ or less than ('2019-05-01'),
12 partition p5 values equ or less than (maxvalue)
13 );
executed successfully
used time: 14.049(ms). Execute id is 418.
SQL>
SQL> alter table hefei split partition p5 at('2019-6-01') into (partition p7 storage(on "dave"),partition p6 storage(on "dave"));
executed successfully
used time: 78.981(ms). Execute id is 87.
SQL>
SQL> select table_name,partition_name,high_value,tablespace_name from all_tab_partitions where table_name='HEFEI';
LINEID TABLE_NAME PARTITION_NAME HIGH_VALUE TABLESPACE_NAME
---------- ---------- -------------- ----------------------------- ---------------
1 HEFEI P7 DATETIME'2019-06-01 00:00:00' MAIN
2 HEFEI P8 DATETIME'2019-09-01 00:00:00' MAIN
3 HEFEI P9 MAXVALUE MAIN
4 HEFEI P1 DATETIME'2019-01-01 00:00:00' MAIN
5 HEFEI P2 DATETIME'2019-02-01 00:00:00' MAIN
6 HEFEI P3 DATETIME'2019-03-01 00:00:00' MAIN
7 HEFEI P4 DATETIME'2019-05-01 00:00:00' MAIN
7 rows got
used time: 42.011(ms). Execute id is 103.
SQL>
SQL> alter table hefei drop partition p9;
executed successfully
used time: 16.385(ms). Execute id is 118.
SQL>
SQL> select table_name,partition_name,high_value,tablespace_name from all_tab_partitions where table_name='HEFEI';
LINEID TABLE_NAME PARTITION_NAME HIGH_VALUE TABLESPACE_NAME
---------- ---------- -------------- ----------------------------- ---------------
1 HEFEI P7 DATETIME'2019-06-01 00:00:00' MAIN
2 HEFEI P8 DATETIME'2019-09-01 00:00:00' MAIN
3 HEFEI P9 DATETIME'2019-10-01 00:00:00' dave
4 HEFEI P1 DATETIME'2019-01-01 00:00:00' MAIN
5 HEFEI P2 DATETIME'2019-02-01 00:00:00' MAIN
6 HEFEI P3 DATETIME'2019-03-01 00:00:00' MAIN
7 HEFEI P4 DATETIME'2019-05-01 00:00:00' MAIN
7 rows got
used time: 66.414(ms). Execute id is 120.
SQL>
但是要注意,对于分区表add 添加分区操作,使用新的表空间,对于split 操作,仍然使用之前的表空间进行存储。
版权声明:本文为博主原创文章,未经博主允许不得转载。