日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

子分區使用模板

PolarDB PostgreSQL版(兼容Oracle)支持使用子分區模板在組合分區表中創建子分區。本文詳細介紹了其語法和示例。

簡介

PolarDB PostgreSQL版(兼容Oracle)支持使用子分區模板在組合分區表中創建子分區。子分區模板不需要為表中的每個分區指定子分區描述符,從而簡化了子分區的規范。相反,您只需要在模板中描述子分區一次,然后將該子分區模板應用于表中的每個分區。對于interval- *復合分區表,子分區模板是定義間隔分區的子分區的唯一方法。

  • 如果分區未指定子分區描述符,系統將默認使用子分區模板來定義子分區。

  • 如果分區已指定子分區描述符,系統將默認使用該描述符定義子分區。

  • 如果分區未指定子分區描述符,也沒有提供子分區模板,系統將默認創建一個默認子分區。

  • 如果在子分區模板中指定了子分區名稱,則對于使用該模板創建的子分區,名稱為“分區名稱_子分區模板名稱”。例如:分區的名字為parta,子分區模板的名字為subpartb,拼接后生成的子分區名為parta_subpartb。

語法說明

創建子分區模板

------通用語法
CREATE TABLE table_definition PARTITION BY hash/range/list (column[, column ]...) 
SUBPARTITION BY hash/range/list (column[, column ]...) 
SUBPARTITION TEMPLATE (subpartition[, subpartition], ...) 
(table_partition[, table_partition]...);

------僅適用于子分區是HASH分區類型的情況
CREATE TABLE table_definition PARTITION BY hash/range/list (column[, column ]...) 
SUBPARTITION BY hash(column[, column ]...) 
SUBPARTITION TEMPLATE num
(table_partition[, table_partition]...);

------僅適用于分區和子分區都是HASH分區類型的情況
CREATE TABLE table_definition PARTITION BY hash (column[, column ]...) 
SUBPARTITION BY hash(column[, column ]...)  PARTITIONS num SUBPARTITIONS num;

修改子分區模板

------通用語法
ALTER TABLE table_definition SUBPARTITION TEMPLATE (subpartition[, subpartition], ...);

------僅適用于子分區是HASH分區類型的情況
ALTER TABLE table_definition SUBPARTITION TEMPLATE number;

刪除子分區模板

ALTER TABLE table_definition SUBPARTITION TEMPLATE ();

示例

創建RANGE類型的子分區模板

CREATE TABLE shipments
( order_id      NUMBER NOT NULL
, order_date    DATE NOT NULL
, delivery_date DATE NOT NULL
, customer_id   NUMBER NOT NULL
, sales_amount  NUMBER NOT NULL
)
PARTITION BY RANGE (order_date) SUBPARTITION BY RANGE(delivery_date)
     SUBPARTITION TEMPLATE
   (SUBPARTITION e VALUES LESS THAN (TO_DATE('15-AUG-2006','dd-MON-yyyy'))
  , SUBPARTITION a VALUES LESS THAN (TO_DATE('01-SEP-2006','dd-MON-yyyy'))
  , SUBPARTITION l VALUES LESS THAN (MAXVALUE) )
   ( PARTITION p_2006_jul VALUES LESS THAN (TO_DATE('01-AUG-2006','dd-MON-yyyy'))
, PARTITION p_2006_aug VALUES LESS THAN (TO_DATE('01-SEP-2006','dd-MON-yyyy'))
, PARTITION p_2006_sep VALUES LESS THAN (TO_DATE('01-OCT-2006','dd-MON-yyyy'))
, PARTITION p_2006_oct VALUES LESS THAN (TO_DATE('01-NOV-2006','dd-MON-yyyy'))
, PARTITION p_2006_nov VALUES LESS THAN (TO_DATE('01-DEC-2006','dd-MON-yyyy'))
, PARTITION p_2006_dec VALUES LESS THAN (TO_DATE('01-JAN-2007','dd-MON-yyyy'))
);

創建HASH類型的子分區模板

------僅適用于子分區是HASH分區類型的情況
CREATE TABLE emp_sub_template (deptno NUMBER, empname VARCHAR(32), grade NUMBER)
     PARTITION BY RANGE(deptno) SUBPARTITION BY HASH(empname)
     SUBPARTITION TEMPLATE  4
    (PARTITION p1 VALUES LESS THAN (1000),
     PARTITION p2 VALUES LESS THAN (2000),
     PARTITION p3 VALUES LESS THAN (6000)
    );

------僅適用于分區和子分區都是HASH分區類型的情況
CREATE TABLE hash_sub_template (deptno NUMBER, empname VARCHAR(32), grade NUMBER)
     PARTITION BY HASH(deptno) SUBPARTITION BY HASH(empname) PARTITIONS 4 SUBPARTITIONS 3;

修改子分區模板

------通用語法
ALTER TABLE hash_sub_template SET SUBPARTITION TEMPLATE
(SUBPARTITION a1,
          SUBPARTITION b1,
          SUBPARTITION c1,
          SUBPARTITION d1);

------僅適用于子分區是HASH分區類型的情況
ALTER TABLE hash_sub_template SET SUBPARTITION TEMPLATE 3;

查看子分區模板信息

子分區模板提供一個系統視圖(DBA_SUBPARTITION_TEMPLATES)來查看分區表的子分區模板信息。

列名

描述

USER_NAME

所屬用戶名。

TABLE_NAME

表名。

SUBPARTITION_NAME

模板中子分區名。

SUBPARTITION_POSITION

模板中子分區位置編號,從1開始。

TABLESPACE_NAME

表空間名。

HIGH_BOUND

子分區邊界上限。

查看子分區模板信息,示例如下:

SELECT * FROM DBA_SUBPARTITION_TEMPLATES;
 user_name |    table_name     | subpartition_name | subpartition_position | tablespace_name | high_bound 
-----------+-------------------+-------------------+-----------------------+-----------------+------------
 PolarDB   | EMP_SUB_TEMPLATE  |                   |                     1 | PG_DEFAULT      | 
 PolarDB   | EMP_SUB_TEMPLATE  |                   |                     2 | PG_DEFAULT      | 
 PolarDB   | EMP_SUB_TEMPLATE  |                   |                     3 | PG_DEFAULT      | 
 PolarDB   | EMP_SUB_TEMPLATE  |                   |                     4 | PG_DEFAULT      | 
 PolarDB   | HASH_SUB_TEMPLATE | A1                |                     1 | PG_DEFAULT      | 
 PolarDB   | HASH_SUB_TEMPLATE | B1                |                     2 | PG_DEFAULT      | 
 PolarDB   | HASH_SUB_TEMPLATE | C1                |                     3 | PG_DEFAULT      | 
 PolarDB   | HASH_SUB_TEMPLATE | D1                |                     4 | PG_DEFAULT      | 
(8 rows)