Skip to content

表分区-sys_partis

功能描述

sys_partis系统表用于存储、管理系统库和用户库中的所有表分区信息。

字段说明

序号字段名类型说明
0DB_IDOID_TYPE库ID
1TABLE_IDOID_TYPE表ID
2PARTI_NOINTEGER分区号
3PARTI_NAMEVARCHAR分区名
4PARTI_VALVARCHAR分区条件值
5GSTO_NOSINTEGER全局存贮号
6ONLINEBOOLEAN是否在线
7RESERVED1VARCHAR保留字段
8RESERVED2INTEGERVARCHAR

示例

  • 查询一级分区表的分区情况
    sql
    SQL> CREATE TABLE part_info(id INT,name VARCHAR(30))PARTITION BY HASH(id) PARTITIONS 3;    
    
    SQL> SELECT sp.* FROM sys_partis sp JOIN sys_tables st ON sp.db_id=st.db_id AND sp.table_id=st.table_id WHERE table_name='PART_INFO';
    
    DB_ID | TABLE_ID | PARTI_NO | PARTI_NAME | PARTI_VAL | GSTO_NOS | ONLINE | RESERVED1 | RESERVED2 | 
    ------------------------------------------------------------------------------
    1 | 1048581 | 0 | PART1| 0| 2822 | T | <NULL>| <NULL>|
    1 | 1048581 | 1 | PART2| 1| 2823 | T | <NULL>| <NULL>|
    1 | 1048581 | 2 | PART3| 2| 2824 | T | <NULL>| <NULL>|
  • 查询二级分区表的分区情况
sql
SQL> CREATE TABLE t1(c1 INTEGER, c2 INTEGER) PARTITION BY RANGE(c1) PARTITIONS((100),(200)) 
     SUBPARTITION BY RANGE(C2) SUBPARTITIONS((1000),(2000),(3000));

二级分区表的全局存储号信息在系统表中常以一个不可读取的魔数(即在代码中出现但没有解释的数字常量)表示,需要由数据库内部系统函数format_gsto_nos来进行格式化展示。format_gsto_nos有以下两种重载形式。

  • 接受1个参数,输出结果为逗号分隔的全局存储号字符串。

    sql
    SQL> SELECT format_gsto_nos(gsto_nos) AS gsto_nos FROM dba_partis WHERE table_id=(SELECT table_id FROM
         dba_tables WHERE table_name='T1');
    GSTO_NOS
    -------------------------------------------
    201,202,203
    204,205,206
  • 接受2个参数,分别是全局存储号的魔数和子分区号,输出结果为全局存储号魔数中子分区号指定的全局存储号数值。

    sql
    
    SQL> SELECT parti_no, subparti_no, format_gsto_nos(gsto_nos, subparti_no) AS gsto_no FROM dba_partis a
         , dba_subpartis b WHERE a.table_id = (SELECT table_id FROM dba_tables WHERE table_name='T1');
    
     PARTI_NO | SUBPARTI_NO | GSTO_NO
     ------------------------------------------
     0 | 0 | 201
     0 | 1 | 202
     0 | 2 | 203
     1 | 0 | 204
     1 | 1 | 205
     1 | 2 | 206
  • 查询表所在库

  • 查询表所有者

相关系统表

  • sys_databases
  • sys_schemas
  • sys_tables