楼主: ~贝贝~

支持国产数据库,达梦数据库试用团DM7大体验,优缺点我来评!活动结束,获奖名单公布

[复制链接]
论坛徽章:
26
ITPUB伯乐
日期:2012-05-22 15:05:35喜羊羊
日期:2015-05-14 12:15:30美羊羊
日期:2015-07-02 22:22:59秀才
日期:2015-08-24 09:51:48天枰座
日期:2015-11-05 16:53:35双鱼座
日期:2015-12-05 19:22:56巨蟹座
日期:2015-12-20 18:46:10摩羯座
日期:2016-05-19 09:54:17ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-02-22 15:16:26
251#
发表于 2011-12-16 20:03 | 只看该作者
phoenix1981 发表于 2011-12-16 18:03
感受佳:1、界面美观  原因:简洁明了,符合一惯的风格  辅助说明:国产的,咋瞅咋好看。
            2、 ...

good

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
252#
发表于 2011-12-17 12:49 | 只看该作者



--在数据库disql提示符
--以sysdba登录
SQL>login
server:
user name:
password:
port:
login time used:7.510(ms)
服务器[localhost]:处于普通打开状态
--创建2G表空间
SQL>create tablespace ts datafile 'D:\dmdbms\data\DAMENG\ts.dbf' size 2048;
time used: 18.445(ms) clock tick:30904337. Execute id is 300.
--创建用户
SQL>create user t identified by t12345 default tablespace ts;
create user t identified by t12345 default tablespace ts;

time used: 7.233(ms) clock tick:12115446. Execute id is 301.
--授权
SQL>grant dba to t;
grant dba to t;

time used: 2.538(ms) clock tick:4243962. Execute id is 302.
--以用户T登录
SQL>login
server:
user name:T
password:
port:
login time used:4.826(ms)
服务器[localhost]:处于普通打开状态
--执行脚本
SQL>`D:\soft\Tcp-h_windows\dss.ddl
2   ;
-- Sccsid:     @(#)dss.ddl      2.1.8.1
CREATE TABLE NATION  ( N_NATIONKEY  INTEGER NOT NULL,
N_NAME       CHAR(25) NOT NULL,
N_REGIONKEY  INTEGER NOT NULL,
N_COMMENT    VARCHAR(152));

time used: 11.848(ms) clock tick:19849872. Execute id is 310.
CREATE TABLE REGION  ( R_REGIONKEY  INTEGER NOT NULL,
R_NAME       CHAR(25) NOT NULL,
R_COMMENT    VARCHAR(152));

time used: 11.158(ms) clock tick:18685935. Execute id is 311.
CREATE TABLE PART  ( P_PARTKEY     INTEGER NOT NULL,
P_NAME        VARCHAR(55) NOT NULL,
P_MFGR        CHAR(25) NOT NULL,
P_BRAND       CHAR(10) NOT NULL,
P_TYPE        VARCHAR(25) NOT NULL,
P_SIZE        INTEGER NOT NULL,
P_CONTAINER   CHAR(10) NOT NULL,
P_RETAILPRICE DECIMAL(15,2) NOT NULL,
P_COMMENT     VARCHAR(23) NOT NULL );

time used: 10.563(ms) clock tick:17690160. Execute id is 312.
CREATE TABLE SUPPLIER ( S_SUPPKEY     INTEGER NOT NULL,
S_NAME        CHAR(25) NOT NULL,
S_ADDRESS     VARCHAR(40) NOT NULL,
S_NATIONKEY   INTEGER NOT NULL,
S_PHONE       CHAR(15) NOT NULL,
S_ACCTBAL     DECIMAL(15,2) NOT NULL,
S_COMMENT     VARCHAR(101) NOT NULL);

time used: 10.224(ms) clock tick:17121712. Execute id is 313.
CREATE TABLE PARTSUPP ( PS_PARTKEY     INTEGER NOT NULL,
PS_SUPPKEY     INTEGER NOT NULL,
PS_AVAILQTY    INTEGER NOT NULL,
PS_SUPPLYCOST  DECIMAL(15,2)  NOT NULL,
PS_COMMENT     VARCHAR(199) NOT NULL );

time used: 10.411(ms) clock tick:17441204. Execute id is 314.
CREATE TABLE CUSTOMER ( C_CUSTKEY     INTEGER NOT NULL,
C_NAME        VARCHAR(25) NOT NULL,
C_ADDRESS     VARCHAR(40) NOT NULL,
C_NATIONKEY   INTEGER NOT NULL,
C_PHONE       CHAR(15) NOT NULL,
C_ACCTBAL     DECIMAL(15,2)   NOT NULL,
C_MKTSEGMENT  CHAR(10) NOT NULL,
C_COMMENT     VARCHAR(117) NOT NULL);

time used: 10.632(ms) clock tick:17814250. Execute id is 315.
CREATE TABLE ORDERS  ( O_ORDERKEY       INTEGER NOT NULL,
O_CUSTKEY        INTEGER NOT NULL,
O_ORDERSTATUS    CHAR(1) NOT NULL,
O_TOTALPRICE     DECIMAL(15,2) NOT NULL,
O_ORDERDATE      DATE NOT NULL,
O_ORDERPRIORITY  CHAR(15) NOT NULL,
O_CLERK          CHAR(15) NOT NULL,
O_SHIPPRIORITY   INTEGER NOT NULL,
O_COMMENT        VARCHAR(79) NOT NULL);

time used: 10.391(ms) clock tick:17404937. Execute id is 316.
CREATE TABLE LINEITEM ( L_ORDERKEY    INTEGER NOT NULL,
L_PARTKEY     INTEGER NOT NULL,
L_SUPPKEY     INTEGER NOT NULL,
L_LINENUMBER  INTEGER NOT NULL,
L_QUANTITY    DECIMAL(15,2) NOT NULL,
L_EXTENDEDPRICE  DECIMAL(15,2) NOT NULL,
L_DISCOUNT    DECIMAL(15,2) NOT NULL,
L_TAX         DECIMAL(15,2) NOT NULL,
L_RETURNFLAG  CHAR(1) NOT NULL,
L_LINESTATUS  CHAR(1) NOT NULL,
L_SHIPDATE    DATE NOT NULL,
L_COMMITDATE  DATE NOT NULL,
L_RECEIPTDATE DATE NOT NULL,
L_SHIPINSTRUCT CHAR(25) NOT NULL,
L_SHIPMODE     CHAR(10) NOT NULL,
L_COMMENT      VARCHAR(44) NOT NULL);

time used: 11.111(ms) clock tick:18614536. Execute id is 317.
SQL>

SQL>desc region;
COLNAME         TYPE            LENGTH          NULLABLE

1       R_REGIONKEY     INTEGER 4               N

2       R_NAME  CHAR    25              N

3       R_COMMENT       VARCHAR 152             Y
3 rows got
time used: 17.027(ms) clock tick:28420484. Execute id is 318.
SQL>select * from region;
select * from region;
R_REGIONKEY             R_NAME          R_COMMENT

1       0               AFRICA                          lar deposits. blithely final packages cajole. regular waters are
final requests. regular accounts are according to

2       1               AMERICA                         hs use ironic, even requests. s

3       2               ASIA                            ges. thinly even pinto beans ca

4       3               EUROPE                          ly final courts cajole furiously final excuse

5       4               MIDDLE EAST                     uickly special accounts cajole carefully blithely close requests
. carefully final asymptotes haggle furiousl
5 rows got
time used: 1.444(ms) clock tick:2410899. Execute id is 319.


--在操作系统cmd提示符
D:\soft\Tcp-h_windows>dbgen -s1
TPC-H Population Generator (Version 2.8.0)
Copyright Transaction Processing Performance Council 1994 - 2008

--dm6的命令格式已经不能用了,命令删除了,控制文件格式也变了

region.ctl

table=(region)
col_num=(3)
col_sep=(|)
data_file=(D:\soft\Tcp-h_windows\region.tbl)


D:\dmdbms\bin>dmloader userid=T/T12345  control=D:\soft\Tcp-h_windows\region.ctl log=D:\soft\Tcp-h_windows\region.log
'dmloader' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
--dm7控制文件改成下面的格式
D:\soft\Tcp-h_windows>notepad region.ctl

  1. OPTIONS
  2.      (
  3.            SKIP = 0
  4.            ROWS = 50000
  5.            DIRECT = TRUE
  6.            INDEX_OPTION = 2
  7.      )
  8.      LOAD DATA
  9.      INFILE 'D:\soft\Tcp-h_windows\region.tbl' STR X '0D0A'
  10.      BADFILE 'D:\soft\Tcp-h_windows\region.bad'
  11.      INTO TABLE region
  12.      FIELDS '|'
  13.      (
  14. R_REGIONKEY,
  15. R_NAME,
  16. R_COMMENT
  17. )
复制代码

  1. OPTIONS
  2.      (
  3.            SKIP = 0
  4.            ROWS = 50000
  5.            DIRECT = TRUE
  6.            INDEX_OPTION = 2
  7.      )
  8.      LOAD DATA
  9.      INFILE 'D:\soft\Tcp-h_windows\region.tbl' STR X '0D0A'
  10.      BADFILE 'D:\soft\Tcp-h_windows\region.bad'
  11.      INTO TABLE region
  12.      FIELDS '|'

复制代码
D:\dmdbms\bin>dmfldr userid=T/T12345  control='D:\soft\Tcp-h_windows\region.ctl' log='D:\soft\Tcp-h_windows\region.log'
dmfldr:

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

控制文件:D:\soft\Tcp-h_windows\region.ctl

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:是

是否插入自增列:否

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

字符集:GBK



数据文件共1个:
D:\soft\Tcp-h_windows\region.tbl

错误文件\soft\Tcp-h_windows\region.bad

目标表:REGION

列名                       终止    包装数据类型

R_REGIONKEY                 WHT      CHARACTER

R_NAME                      WHT      CHARACTER

R_COMMENT                   WHT      CHARACTER



目标表 REGION :
5行 加载成功。
由于数据格式错误,0行 丢弃。
由于数据错误,0行 没有加载。

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

用时:1196.553(ms)

D:\dmdbms\bin>dmfldr userid=T/T12345  control='D:\soft\Tcp-h_windows\lineitem.ctl' log='D:\soft\Tcp-h_windows\lineitem.log'
dmfldr:

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

控制文件:D:\soft\Tcp-h_windows\lineitem.ctl

加载行数:全部

每次提交服务器行数:50000

跳过行数:0

允许错误数:100

是否直接加载:是

是否插入自增列:否

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

字符集:GBK



数据文件共1个:
D:\soft\Tcp-h_windows\lineitem.tbl

错误文件\soft\Tcp-h_windows\lineitem.bad

目标表:LINEITEM

列名                       终止    包装数据类型

L_ORDERKEY                  WHT      CHARACTER

L_PARTKEY                   WHT      CHARACTER

L_SUPPKEY                   WHT      CHARACTER

L_LINENUMBER                WHT      CHARACTER

L_QUANTITY                  WHT      CHARACTER

L_EXTENDEDPRICE             WHT      CHARACTER

L_DISCOUNT                  WHT      CHARACTER

L_TAX                       WHT      CHARACTER

L_RETURNFLAG                WHT      CHARACTER

L_LINESTATUS                WHT      CHARACTER

L_SHIPDATE                  WHT      CHARACTER

L_COMMITDATE                WHT      CHARACTER

L_RECEIPTDATE               WHT      CHARACTER

L_SHIPINSTRUCT              WHT      CHARACTER

L_SHIPMODE                  WHT      CHARACTER

L_COMMENT                   WHT      CHARACTER



50000 rows processed .
100000 rows processed .

5900000 rows processed .
5950000 rows processed .
6000000 rows processed .
目标表 LINEITEM :
6001215行 加载成功。
由于数据格式错误,0行 丢弃。
由于数据错误,0行 没有加载。

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

用时:48400.243(ms)


--在数据库disql提示符
SQL>truncate table region;
truncate table region;

time used: 251.072(ms) clock tick:420849705. Execute id is 320.
SQL>truncate table region;
truncate table region;

time used: 11.127(ms) clock tick:18642504. Execute id is 321.
SQL>select * from region;
select * from region;
R_REGIONKEY             R_NAME          R_COMMENT
0 rows got
time used: 3.265(ms) clock tick:5462781. Execute id is 322.
SQL>select count(*) from region;
select count(*) from region;
COUNT(*)

1       5
1 rows got
time used: 1.274(ms) clock tick:2125713. Execute id is 323.
SQL>select count(*) from lineitem;
select count(*) from lineitem;
COUNT(*)

1       6001215
1 rows got
time used: 1.137(ms) clock tick:1896804. Execute id is 324.
SQL>

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
253#
发表于 2011-12-17 13:49 | 只看该作者
发现2个bug,
1。加载失败
D:\dmdbms\bin>dmfldr userid=T/T12345  control='D:\soft\Tcp-h_windows\supplier.ctl' log='D:\soft\Tcp-h_windows\supplier.log'
dmfldr:

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

控制文件:D:\soft\Tcp-h_windows\supplier.ctl

加载行数:全部

每次提交服务器行数:500000

跳过行数:0

允许错误数:100

是否直接加载:是

是否插入自增列:否

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

字符集:GBK



数据文件共1个:
D:\soft\Tcp-h_windows\supplier.tbl

错误文件\soft\Tcp-h_windows\supplier.bad

目标表:SUPPLIER

列名                                                                                                                            终止    包装数据类型

S_SUPPKEY                                                                                                                        WHT      CHARACTER

S_NAME                                                                                                                           WHT      CHARACTER

S_ADDRESS                                                                                                                        WHT      CHARACTER

S_NATIONKEY                                                                                                                      WHT      CHARACTER

S_PHONE                                                                                                                          WHT      CHARACTER

S_ACCTBAL                                                                                                                        WHT      CHARACTER

S_COMMENT                                                                                                                        WHT      CHARACTER



目标表 SUPPLIER :
0行 加载成功。
由于数据格式错误,0行 丢弃。
由于数据错误,0行 没有加载。

跳过的逻辑记录总数:0

2。不支持limit了,dm6还支持(thread-1418395-1-2.html),改为top内存不足
SQL>select
2           l_orderkey,
3           sum(l_extendedprice * (1 - l_discount)) as revenue,
4           o_orderdate,
5           o_shippriority
6   from
7           customer,
8           orders,
9           lineitem
10  where
11          c_mktsegment = 'HOUSEHOLD'
12          and c_custkey = o_custkey
13          and l_orderkey = o_orderkey
14          and o_orderdate < date '1995-03-29'
15          and l_shipdate > date '1995-03-29'
16  group by
17          l_orderkey,
18          o_orderdate,
19          o_shippriority
20  order by
21          revenue desc,
22          o_orderdate
23          limit 10;
select
        l_orderkey,
        sum(l_extendedprice * (1 - l_discount)) as revenue,
        o_orderdate,
        o_shippriority
from
        customer,
        orders,
        lineitem
where
        c_mktsegment = 'HOUSEHOLD'
        and c_custkey = o_custkey
        and l_orderkey = o_orderkey
        and o_orderdate < date '1995-03-29'
        and l_shipdate > date '1995-03-29'
group by
        l_orderkey,
        o_orderdate,
        o_shippriority
order by
        revenue desc,
        o_orderdate
        limit 10;

第 23 行, 第 9 列[limit]附近出现错误:
语法分析出错.error code=-2007
SQL>
SQL>select top 10
2           l_orderkey,
3           sum(l_extendedprice * (1 - l_discount)) as revenue,
4           o_orderdate,
5           o_shippriority
6   from
7           customer,
8           orders,
9           lineitem
10  where
11          c_mktsegment = 'HOUSEHOLD'
12          and c_custkey = o_custkey
13          and l_orderkey = o_orderkey
14          and o_orderdate < date '1995-03-29'
15          and l_shipdate > date '1995-03-29'
16  group by
17          l_orderkey,
18          o_orderdate,
19          o_shippriority
20  order by
21          revenue desc,
22          o_orderdate;
select top 10
        l_orderkey,
        sum(l_extendedprice * (1 - l_discount)) as revenue,
        o_orderdate,
        o_shippriority
from
        customer,
        orders,
        lineitem
where
        c_mktsegment = 'HOUSEHOLD'
        and c_custkey = o_custkey
        and l_orderkey = o_orderkey
        and o_orderdate < date '1995-03-29'
        and l_shipdate > date '1995-03-29'
group by
        l_orderkey,
        o_orderdate,
        o_shippriority
order by
        revenue desc,
        o_orderdate;

内存不足.error code=-503
SQL>

使用道具 举报

回复
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
254#
发表于 2011-12-17 15:38 | 只看该作者
达梦数据库DM7 支持对表进行水平分区和垂直分区。对于水平分区,提供以下三种分区方式:
1. 范围水平分区:对表中的某些列上值的范围进行分区,根据某个值的范围,决定将
该数据存储在哪个分区上;
2. 哈希水平分区:通过指定分区编号来均匀分布数据的一种分区类型,通过在I/O 设
备上进行散列分区,使得这些分区大小基本一致;
3. 列表水平分区:通过指定表中的某些列的离散值集,来确定应当存储在一起的数据。
例如,可以对表上的status 列的值在('A','H','O')放在一个分区,值在('B','I','P')
放在另一个分区,以此类推。
而垂直分区就是将表按列分拆为多个分区,每个分区子表包含较少的列。如果查询表上
的某些列,并且这些列都在一个分区中,那么只需扫描这个分区即可,可以减少I/O 量。
与oracle相比来说,还缺少一个组合分区
一、        水平分区
1:水平分区方式
(1):范围分区
CREATE TABLE callinfo(
caller CHAR(15),
callee CHAR(15),
time DATETIME,
duration INT
)
PARTITION BY RANGE(time)(
PARTITION p1 VALUES LESS THAN ('2010-04-01'),
PARTITION p2 VALUES LESS THAN ('2010-07-01'),
PARTITION p3 VALUES LESS THAN ('2010-10-01'),
PARTITION p4 VALUES EQU OR LESS THAN ('2010-12-31')
);
(2):哈希分区表
CREATE TABLE sales(
sales_id INT,
saleman CHAR(20),
saledate DATETIME,
city CHAR(10)
)
PARTITION BY LIST(city)(
PARTITION p1 VALUES ('北京', '天津'),
PARTITION p2 VALUES ('上海', '南京', '杭州'),
PARTITION p3 VALUES ('武汉', '长沙'),
PARTITION p4 VALUES ('广州', '深圳')
);
(3):列表分区
CREATE TABLE sales01(
sales_id INT,
saleman CHAR(20),
saledate DATETIME,
city CHAR(10)
)
PARTITION BY HASH(city)(
PARTITION p1,
PARTITION p2,
PARTITION p3,
PARTITION p4
);
如果不需指定分区表名,可以通过指定哈希分区个数来建立哈希分区表。
CREATE TABLE sales02(
sales_id INT,
saleman CHAR(20),
saledate DATETIME,
city CHAR(10)
)
PARTITION BY HASH(city)
PARTITIONS 4 STORE IN (ts1, ts2, ts3, ts4);


2、分区查询
SELECT * FROM sales02 PARTITION (dmhashpart0);


3、分区索引
DM7 支持对水平分区表建立普通索引、唯一索引、聚簇索引和函数索引。在水平分区表
上建立的索引都是局部索引,即每一个表分区都有一个索引分区,并且只索引该分区上的数
据。
例如,在sales 表上的saledate 上建立索引。
CREATE INDEX ind_sales_saldate ON sales(saledate);
CREATE UNIQUE INDEX ind_sales_city ON sale(city);
建立分区索引后,每一个分区子表都会建立一个索引分区,负责索引分区子表的数据。
由于每个索引分区只负责索引本分区上的数据,其他分区上的数据无法维护。因此,当对水
平分区表建立唯一索引时,只能建立分区键索引,即分区键必须都包含在索引键中。只有当
分区键都包含在索引键中,才能对分区主表保证索引键唯一。
另外,不能在水平分区表上建立唯一函数索引。

与oracle相比,目前水平分区还不能支持全局分区索引

4、维护水平分区表
增加分区
ALTER TABLE callinfo
ADD PARTITION p5 VALUES LESS THAN ('2011-4-1') STORAGE (ON ts5);
删除分区
ALTER TABLE callinfo DROP PARTITION p1;
交换分区
CREATE TABLE callinfo_2010Q2(
caller CHAR(15),
callee CHAR(15),
time DATETIME,
duration INT
);
--交换分区
ALTER TABLE callinfo EXCHANGE PARTITION p2 WITH TABLE callinfo_2010Q2;
--删除原分区
ALTER TABLE callinfo DROP PARTITION p2;
--新增分区,记录2011 年第二季度通话记录
ALTER TABLE callinfo
ADD PARTITION p6 VALUES LESS THAN ('2011-7-1') STORAGE (ON ts2);
合并分区
ALTER TABLE callinfo MERGE PARTITIONS p3, p4 into partition p3_4;
拆分分区
ALTER TABLE callinfo SPLIT PARTITION p3_4 AT ('2010-9-30') INTO (PARTITION p3, PARTITION p4);

与oracle相比,目前还不支持自增分区。

5、水平分区的限制
DM的文档中对水平分区的限制做了一个说明,这些限制也是DM以后需要改进的地方。
1. 分区列类型必须是数值型、字符型或日期型,不支持BLOB、TEXT、ROWID、BIT、
BINARY、VARBINARY、时间间隔等类型和用户自定义类型作为分区列;
2. 范围分区和哈希分区的分区键可以是多个,但列表分区的分区键必须唯一;
3. 水平分区表指定主键和唯一约束时,分区键必须都包含在主键和唯一约束中;
4. 水平分区表不支持临时表;
5. 不能在水平分区表上建立自引用约束;
6. 水平分区表的分区数的上限是65535;
7. 不允许对分区子表执行任何DDL 操作;
8. 对于哈希分区,除了表名重命名外,不允许其他ALTER TABLE 操作;
9. 对于范围分区和列表分区,除了上一节所述的分区表修改操作,不允许其他ALTER
TABLE 操作;
10. 对范围分区增加分区值必须是递增的,即只能在最后一个分区后添加分区。列表分
区增加分区值不能存在于其他已存在分区;
11. 当分区数仅剩一个时,不允许删除分区;
12. 仅能对相邻的范围分区进行合并,合并后的分区名可为高分区名或新分区名;
13. 拆分分区的分区值必须在原分区范围中,并且分区名不能跟已有分区名相同。拆分
分区值落在低分区中;
14. 与分区进行分区交换的普通表,必须与分区表拥有相同的列及索引,但交换分区并
不会对数据进行校验,即交换后的数据并不能保证数据完整性,如CHECK 约束;
15. 水平分表仅支持建立局部索引,不支持建立全局索引,即在分区表上建立索引,每
一个表分区都有一个索引分区,并且只索引该分区上的数据,而分区主表上的索引
并不索引数据;
16. 不能对水平分区表建立唯一函数索引和全文索引;
17. 不能对分区子表单独建立索引;
18. 在分区表上执行更新分区键,不允许更新后数据导致跨分区的移动,即不能发生行
迁移;
19. 不能在分区语句的STORAGE 子句中指定BRANCH 选项。

二、        垂直分区
与水平分区相似,定义一个垂直分区表,系统将自动为其创建一个分区主表和若干个分区子表。分区主表不保存实际数据,只保存表定义、分区信息,实际数据保存在分区子表中。
每个分区子表包含定义的分区子表列和聚集索引列。并且,在所有的分区子表上建立了
聚集索引。这样拆分后,每个子表只包含较少列数据,通过聚集索引列进行行匹配,各个分
区子表中的每个逻辑行与其他分区子表的相同逻辑行匹配,可以方便的还原主表定义的完整
数据。
由于用户数据都存储在分区子表中,而子表对用户是透明的,因此,当用户需要获得分
区主表所有列数据时,分区子表间会根据聚集索引键进行连接操作还原主表数据。而对主表
的插入、更新和删除都将影响到相应的分区中。
如果查询只使用到垂直分区表的某些列,系统判断查询需要的数据是否只涉及某个分区
子表,如果是,直接使用分区子表替代分区主表来进行查询优化。系统只需以较少的I/O 代
价,即可获得需要的数据。
以下是一个垂直分区表的例子:
CREATE TABLE orders(
orderid INT CLUSTER PRIMARY KEY,
status INT,
price DOUBLE,
orderdate DATETIME,
customer VARCHAR(20),
comments VARCHAR(256)
)
PARTITION BY COLUMN (
(orderid, status, price, orderdate) AS orders_p1 STORAGE (ON ts1),
(customer, comments) AS orders_p2 STORAGE (ON ts2)
);
订单表orders 中经常访问的字段orderid、status、price 和orderdate 存放在垂直分区
orders_p1 中,其他字段存储在分区orders_p2 中。orders 表中orderid 是聚簇主键, orderid
虽然不是orders_p2 的分区列,但也存储了聚簇主键orderid 的副本,这样分区orders_p1 和
orders_p2 就可通过orderid 联系起来。
DM7垂直分区表的限制如下:
1. 包含 IDENTITY 列的表不允许定义分区表;
2. 垂直分区表不允许建立触发器;
3. 除 CLUSTER KEY 列外,其他任何列只能出现在一个分区中;
4. 垂直分区表上允许建立外键约束;
5. 垂直分区表上不允许建立除UNIQUE 外的CHECK 约束;
6. 不允许跨分区定义索引;
7. 一张垂直分区表最多允许有64 个分区;
8. 禁止用户对垂直分区表子表的INSERT/UPDATE/DELETE 直接操作,但允许直接
SELECT;
9. 禁止通过ALTER TABLE 方式为垂直分区表增加PK 约束;
10. ALTER TABLE 目前只支持ALTER TABLE RENAME 表名(主表或子表),其他均
报错返回;
11. 垂直分区表不支持建表的BRANCH 选项;
12. 垂直分区表上的视图不允许进行增删改操作;
13. 垂直分区表中所有的大字段列必须位于同一个子表中;
14. 垂直分区表子表必须包含一个非CLUSTER KEY 的列。


与oracle 相比:
在Oracle中没有垂直分区的概念,和INDEX CLUSTER有一定的相似之处。不过INDEX CLUSTER是通过索引列将不同表的数据存储在同一个BLOCK中,这样访问的时候可以避免执行连接操作,仅扫描很少的块就可以完成查询。而垂直分区则是将表中的列分开到不同的分区中,并不是存储在一起,而是分别存储,只是访问的时候通过统一的接口。而且INDEX CLUSTER没有一个统一的接口。Oracle中想要实现同样的功能,可以通过两个表再加上一个视图来模拟垂直分区的分区表,同时还要再视图上建立INSTEAD OF触发器,来处理视图上的INSERT/UPDATE/DELETE操作。

结论
DM7在分区功能上已经比较全面,基本的功能都已经实现。但与oracle相比来说还存在一定的差距。DM中关于表是否被分区还不是很透明,区表建立成功后,就无法判断这个表是否是分区表了,而建立的分区数量,每个分区的名称以及物理属性都是不可见的SYSCOLUMNS视图中INFO1列名 表示 水平分区表:分区列的序号。INFO2 用来表示垂直分区。这个视图能用来表示系统中所有列定义的信息。

使用道具 举报

回复
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
255#
发表于 2011-12-17 16:12 | 只看该作者
本帖最后由 buptdream 于 2011-12-17 16:13 编辑

DM7的动态性能视图较之以前的版本增加了不少,总共大约有67个动态视图。而在Oracle中动态性能视图有几百个。在查看DM的文档是发现文档中的一个错误。顺序号不对53,下一个直接变为10了,这种非常明显的错误要避免的


视图.jpg (151.68 KB, 下载次数: 22)

视图.jpg

使用道具 举报

回复
论坛徽章:
0
256#
发表于 2011-12-17 19:22 | 只看该作者

使用道具 举报

回复
论坛徽章:
6
2012新春纪念徽章
日期:2012-01-04 11:53:292013年新春福章
日期:2013-02-25 14:51:24林肯
日期:2013-09-12 15:57:33优秀写手
日期:2013-12-18 09:29:09慢羊羊
日期:2015-03-04 14:51:352015年新春福章
日期:2015-03-06 11:57:31
257#
发表于 2011-12-17 20:54 | 只看该作者
〇〇 发表于 2011-12-17 13:49
发现2个bug,
1。加载失败
D:\dmdbms\bin>dmfldr userid=T/T12345  control='D:\soft\Tcp-h_windows\supp ...

可能是没有primary key 信息,导致查询计划错误, 影响内存使用

使用道具 举报

回复
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:58:44
258#
发表于 2011-12-18 22:23 | 只看该作者
本帖最后由 julia2011 于 2011-12-18 22:36 编辑
myth8860 发表于 2011-12-12 10:12
呵呵,淡定,dm7主要支持mpp,下一个版本就可以测试了。


mpp也支持?很感兴趣,目前有这功能的数据库不多啊,期待。不知道能支持多大数据量,性能如何?

使用道具 举报

回复
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:58:44
259#
发表于 2011-12-18 22:35 | 只看该作者
今天有空, 浏览了下DM_DBA手册,关注了一下高级功能部分。
感觉数据守护类似于oracle的dataguard物理主备了,数据复制应该就是oracle的逻辑主备了。
优点:配置简单,且各平台配置没什么区别。原因:只要配置几个简单的ini文件即可,没有特殊的设置,相比oracle来说真的简单很多。想当初学习配置dataguard花了半个多星期,配置rac更是一个多星期,也许自己太笨了,呵

使用道具 举报

回复
论坛徽章:
0
260#
发表于 2011-12-19 08:07 | 只看该作者
本帖最后由 sdhdshang 于 2011-12-19 08:09 编辑

感受佳:DM7管理工具的界面、交互设计还不错  原因:该界面中不仅有数据显示窗口,还有表结构和过滤条件设定功能,个人觉得,很实用。
待改进:希望稳定性上加以改进,我在WIN7下运行曾经出现过运行不稳定的情况。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表