技术开发 频道

应用系统优化之DM垂直分区

  3.DM垂直分区语法说明

  DM数据库管理系统通过PARTITON子句提供垂直分区功能,语法式如下:

CREATE  TABLE <表名定义>
(
<列定义> {,<列定义>} {,<表级完整性约束>})
[]
[<空间限制子句>]
[];
……
::
= PARTITION BY
::
=
RANGE (
<列名>) [LEFT | RIGHT] FOR VALUES ( {,})
| HASH (<列名>) PARTITIONS <分区数> [STORE IN (<文件组列表>)]
| COLUMN ((<列名> {,<列名>}){,(<列名> {,<列名>})})
……

  4.DM垂直分区使用限制

  垂直分区表的主表不包含实际数据,实际数据存放在垂直分区子表中。对用户来说,垂直分区表和普通表是没有任何区别的,用户可以像使用普通表一样使用垂直分区表。但用户应谨慎考虑垂直分区操作,因为分析多个分区内的数据需要查询连接这些表。如果分区过大的话,可能会影响性能。

  同时,垂直分区也不是适合任何应用场景,垂直分区的使用也存在一定的限制,DM垂直分区的使用存在如下限制:

  1. 建立垂直分区表必须要有CLUSTER PK,并且此聚集索引不允许删除

  2. 除PK列外,其他任何列只能出现在一个分区子表中

  3. 包含IDENTITY列的表不允许定义垂直分区

  4. 垂直分区表不允许建立触发器

  5. 垂直分区表不允许建立CHECK约束

  6. 垂直分区子表不允许建立索引

  7. 不允许跨分区定义索引

  8. 一张表最多允许定义8个垂直分区

  9. 由于DM系统中,大数据对象的实现已进行了优化,数据是保存在大数据对象从表中;因此,包含BLOB/CLOB列的表不允许定义垂直分区

0
相关文章