注册

DM系统视图获取多层级分区表信息问题

哈撒给 2025/04/09 329 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
表DDL语句如下:
CREATE TABLE "STUDENTS"."PHONEDETAIL4"
(
"NAME" VARCHAR(50),
"SEX" VARCHAR(50),
"XIAOFEI" INT,
"PROVINCE" VARCHAR(50),
"CITY" VARCHAR(50),
"DISTRICT" VARCHAR(50),
"XIAOFEI_DATE" DATE)
PARTITION BY RANGE("XIAOFEI_DATE")
SUBPARTITION BY LIST("PROVINCE") SUBPARTITION TEMPLATE
(
SUBPARTITION "LIST_P1" VALUES('北京') STORAGE(ON "STUDENTS"),
SUBPARTITION "LIST_P2" VALUES('新疆') STORAGE(ON "STUDENTS"),
SUBPARTITION "LIST_P3" VALUES(DEFAULT) STORAGE(ON "STUDENTS")
),
SUBPARTITION BY HASH("DISTRICT") SUBPARTITION TEMPLATE
(
SUBPARTITION "HASH_P1" STORAGE(ON "STUDENTS"),
SUBPARTITION "HASH_P2" STORAGE(ON "STUDENTS"),
SUBPARTITION "HASH_P3" STORAGE(ON "STUDENTS"),
SUBPARTITION "HASH_P4" STORAGE(ON "STUDENTS")
)
(
PARTITION "RANGE_P1" VALUES LESS THAN(DATE'2000-01-01') STORAGE(ON "STUDENTS", CLUSTERBTR) ,
PARTITION "RANGE_P2" VALUES LESS THAN(DATE'2001-01-01') STORAGE(ON "STUDENTS", CLUSTERBTR) ,
PARTITION "RANGE_P3" VALUES LESS THAN(DATE'2002-01-01') STORAGE(ON "STUDENTS", CLUSTERBTR) ,
PARTITION "RANGE_P4" VALUES LESS THAN(DATE'2003-01-01') STORAGE(ON "STUDENTS", CLUSTERBTR) ,
PARTITION "RANGE_P5" VALUES LESS THAN(DATE'2004-01-01') STORAGE(ON "STUDENTS", CLUSTERBTR) ,
PARTITION "RANGET_P6" VALUES LESS THAN(DATE'2005-01-01') STORAGE(ON "STUDENTS", CLUSTERBTR) ,
PARTITION "RANGE_P_MAX" VALUES LESS THAN(MAXVALUE) STORAGE(ON "STUDENTS", CLUSTERBTR)
) STORAGE(HASHPARTMAP(1), ON "STUDENTS", CLUSTERBTR);

image.png
第一个sql:
SELECT A.TABLE_NAME,
A.PARTITIONING_TYPE,
B.COLUMN_NAME AS PART_COLUMN_NAME,
A.SUBPARTITIONING_TYPE,
A."INTERVAL"
FROM SYS.ALL_PART_TABLES A
LEFT JOIN (
SELECT OWNER, NAME, COLUMN_NAME
FROM SYS.ALL_PART_KEY_COLUMNS
ORDER BY COLUMN_POSITION
) B
ON A.OWNER = B.OWNER
AND A.TABLE_NAME = B.NAME
WHERE A.TABLE_NAME IN ('PHONEDETAIL4') AND A.OWNER = 'STUDENTS';image.png
第二个sql:
SELECT *
FROM SYS.ALL_SUBPART_KEY_COLUMNS
WHERE NAME IN ('PHONEDETAIL4') AND OWNER = 'STUDENTS';
image.png
第三个sql:
SELECT TABLE_NAME,
PARTITION_NAME,
HIGH_VALUE,
PARTITION_POSITION,
TABLESPACE_NAME,
COMPRESSION
FROM SYS.ALL_TAB_PARTITIONS
WHERE TABLE_NAME IN ('PHONEDETAIL4') AND TABLE_OWNER = 'STUDENTS'
ORDER BY PARTITION_POSITION;
image.png
第四个sql:
SELECT DISTINCT *
FROM SYS.ALL_TAB_SUBPARTITIONS
WHERE TABLE_NAME IN ('PHONEDETAIL4') AND TABLE_OWNER = 'STUDENTS';
image.png

有两个问题:
1、第一个sql查询出来的是range,其子分区类型是list,这个时候我该怎么去查找list的子分期类型:hash类型呢?
2、第二个sql查询出来的键,我该怎么查询能知道其对应的是什么分区类型?(比如PROVINCE对应LIST;DISTRICT对应HASH)

回答 0
暂无回答
扫一扫
联系客服