POLARDB for Oracle 提供了五个系统目录视图,可供您用来查看有关分区表结构的信息。

查询分区视图

你可以查询以下各视图来检索有关分区表和二级分区表的信息:

  • ALL_PART_TABLES
  • ALL_TAB_PARTITIONS
  • ALL_TAB_SUBPARTITIONS
  • ALL_PART_KEY_COLUMNS
  • ALL_SUBPART_KEY_COLUMNS

每个视图的结构将在表分区视图中进行说明。如果使用的是 POLARDB-PSQL 客户端,您还可以通过输入以命令来了解视图的结构:

\d view_name

其中,view_name 指定表分区视图的名称。

通过查询视图,可提供有关分区表或二级分区表结构的信息。例如,以下代码片段显示了二级分区表的名称。

acctg=# SELECT subpartition_name, partition_name FROM ALL_TAB_SUBPARTITIONS;
 subpartition_name | partition_name
-------------------+----------------
 EUROPE_2011       | EUROPE
 EUROPE_2012       | EUROPE
 ASIA_2011         | ASIA
 ASIA_2012         | ASIA
 AMERICAS_2011     | AMERICAS
 AMERICAS_2012     | AMERICAS
(6 rows)

表分区视图

查询与 Oracle 数据库兼容的以下各目录视图,可了解有关分区表的详细信息。

表 1. ALL_PART_TABLES
类型 说明
owner name 表的所有者。
schema_name name 表所在的 schema。
table_name name 表的名称。
partitioning_type text RANGE、LIST 或 HASH
subpartitioning_type text RANGE、LIST、HASH 或 NONE
partition_count bigint 分区的数量。
def_subpartition_count integer 默认二级分区计数 - 它将始终为 0。
partitioning_key_count integer 分区中按子句列出的列数。
subpartitioning_key_count integer 二级分区中按子句列出的列数。
status character varying(8) 此列将始终为 VALID。
def_tablespace_name character varying(30) 此列将始终为 NULL。
def_pct_free numeric 此列将始终为 NULL。
def_pct_used numeric 此列将始终为 NULL。
def_ini_trans numeric 此列将始终为 NULL。
def_max_trans numeric 此列将始终为 NULL。
def_initial_extent character varying(40) 此列将始终为 NULL。
def_next_extent character varying(40) 此列将始终为 NULL。
def_min_extents character varying(40) 此列将始终为 NULL。
def_max_extents character varying(40) 此列将始终为 NULL。
def_pct_increase character varying(40) 此列将始终为 NULL。
def_freelists numeric 此列将始终为 NULL。
def_freelist_groups numeric 此列将始终为 NULL。
def_logging character varying(7) 此列将始终为 YES
def_compression character varying(8) 此列将始终为 NONE
def_buffer_pool character varying(7) 此列将始终为 DEFAULT
ref_ptn_constraint_name character varying(30) 此列将始终为 NULL
interval character varying(1000) 此列将始终为 NULL
表 2. ALL_TAB_PARTITIONS
类型 说明
table_owner name 表的所有者。
schema_name name 表所在的 schema。
table_name name 表的名称。
composite text 如果表有二级分区,则为 YES;如果表没有二级分区,则为 NO。
partition_name name 分区的名称。
subpartition_count bigint 此分区的二级分区的数量。
high_value text RANGE 分区的分区限制,或 LIST 分区的分区值。
high_value_length integer high_value 的长度。
partition_position integer 此列将始终为 NULL。
tablespace_name name 此分区所在的表空间的名称。
pct_free numeric 此列将始终为 0。
pct_used numeric 此列将始终为 0。
ini_trans numeric 此列将始终为 0。
max_trans numeric 此列将始终为 0。
initial_extent numeric 此列将始终为 NULL。
next_extent numeric 此列将始终为 NULL。
min_extent numeric 此列将始终为 0。
max_extent numeric 此列将始终为 0。
pct_increase numeric 此列将始终为 0。
freelists numeric 此列将始终为 NULL
freelist_groups numeric 此列将始终为 NULL
logging character varying(7) 此列将始终为 YES。
compression character varying(8) 此列将始终为 NONE。
num_rows numeric 此分区中的大约行数。
blocks integer 此分区中的大约块数。
empty_blocks numeric 此列将始终为 NULL
avg_space numeric 此列将始终为 NULL
chain_cnt numeric 此列将始终为 NULL
avg_row_len numeric 此列将始终为 NULL
sample_size numeric 此列将始终为 NULL
last_analyzed timestamp without time zone 此列将始终为 NULL
buffer_pool character varying(7) 此列将始终为 NULL
global_stats character varying(3) 此列将始终为 YES。
user_stats character varying(3) 此列将始终为 NO。
backing_table regclass 此分区的支持表的 OID。
表 3. ALL_TAB_SUBPARTITIONS
类型 说明
table_owner name 表的所有者的名称。
schema_name name 表所在 schema 的名称。
table_name name 表的名称。
partition_name name 分区的名称。
subpartition_name name 二级分区的名称。
high_value text RANGE 二级分区的二级分区限制,或 LIST 二级分区的二级分区值。
high_value_length integer high_value 的长度。
subpartition_position integer 此列将始终为 NULL。
tablespace_name name 此二级分区所在的表空间。
pct_free numeric 此列将始终为 0。
pct_used numeric 此列将始终为 0。
ini_trans numeric 此列将始终为 0。
max_trans numeric 此列将始终为 0。
initial_extent numeric 此列将始终为 NULL。
next_extent numeric 此列将始终为 NULL。
min_extent numeric 此列将始终为 0。
max_extent numeric 此列将始终为 0。
pct_increase numeric 此列将始终为 0。
freelists numeric 此列将始终为 NULL。
freelist_groups numeric 此列将始终为 NULL。
logging character varying(7) 此列将始终为 YES。
compression character varying(8) 此列将始终为 NONE。
num_rows numeric 此二级分区中的大约行数。
blocks integer 此二级分区中的大约块数。
empty_blocks numeric 此列将始终为 NULL。
avg_space numeric 此列将始终为 NULL。
chain_cnt numeric 此列将始终为 NULL。
avg_row_len numeric 此列将始终为 NULL。
sample_size numeric 此列将始终为 NULL。
last_analyzed timestamp without time zone 此列将始终为 NULL。
buffer_pool character varying(7) 此列将始终为 NULL。
global_stats character varying(3) 此列将始终为 YES。
user_stats character varying(3) 此列将始终为 NO。
backing_table regclass 此二级分区的支持表的 OID。
表 4. ALL_PART_KEY_COLUMNS
类型 说明
owner name 表所有者的名称。
schema_name name 表所在的 schema 的名称。
name name 表的名称。
object_type character(5) 此列将始终为 TABLE。
column_name name 分区键列的名称。
column_position integer 此列在分区键中的位置(第一列的列位置为 1,第二列的列位置为 2...)
表 5. ALL_SUBPART_KEY_COLUMNS
类型 说明
owner name 表所有者的名称。
schema_name name 表所在的 schema 的名称。
name name 表的名称。
object_type character(5) 此列将始终为 TABLE。
column_name name 分区键列的名称。
column_position integer 此列在分区键中的位置(第一列的列位置为 1,第二列的列位置为 2...)