• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 思想汇报
  • 发言讲话稿
  • 演讲稿
  • 申请书
  • 读后感
  • 报告材料
  • 策划方案
  • 当前位置: 写作资料库 > 其他范文 > 正文

    【ORACLE数据库查看分区表相关信息的方法】数据库分区表

    时间:2018-08-15 16:37:05 来源:写作资料库 本文已影响 写作资料库手机站

    ORACLE数据库如何查看分区表的相关信息呢?不知道你有没有总结过这方面的知识。下面我们先创建两个表TEST、 GPRS_CELLTOPVOL_WK来做实验,脚本如下:

    CREATE TABLE GPRS_CELLTOPVOL_WK

    (

    DATE_CD NUMBER ( 8 ) NOT NULL ,

    WK_CD NUMBER ( 2 ) NOT NULL ,

    CITY_ID NUMBER ( 10 ) ,

    CELL_EN_NAM VARCHAR2 ( 64 ) NOT NULL ,

    CELL_CN_NAM VARCHAR2 ( 64 ) NOT NULL ,

    CELL_VOL NUMBER ,

    CELL_VOL_PCT NUMBER ,

    AVG_RAT NUMBER ,

    CONSTRAINT PK_GPRS_CELLTOPVOL_WK PRIMARY KEY (DATE_CD, WK_CD, CITY_ID, CELL_EN_NAM, CELL_CN_NAM)

    ) PARTITION BY RANGE(DATE_CD)

    (

    PARTITION TEST_RANGE_1 VALUES LESS THAN (201104) TABLESPACE USERS,

    PARTITION TEST_RANGE_2 VALUES LESS THAN (201105) TABLESPACE USERS,

    PARTITION TEST_RANGE_3 VALUES LESS THAN (201106) TABLESPACE USERS

    );

    /

    COMMENT ON TABLE GPRS_CELLTOPVOL_WK IS "GPRS流量小区周分析"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.DATE_CD IS "日期编码"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.WK_CD IS "周次编码"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CITY_ID IS "地市编码"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_EN_NAM IS "小区英文名"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_CN_NAM IS "小区中文名"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_VOL IS "小区流量"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.CELL_VOL_PCT IS "小区流量占比"

    /

    COMMENT ON COLUMN GPRS_CELLTOPVOL_WK.AVG_RAT IS "平均速率"

    /

    CREATE TABLE TEST

    (

    ID NUMBER(10) ,

    NAME VARCHAR2(20),

    SEX VARCHAR2(2)

    )

    TABLESPACE SYSTEM

    PCTFREE 10

    PCTUSED 40

    INITRANS 1

    MAXTRANS 255

    STORAGE

    (

    INITIAL 64K

    MINEXTENTS 1

    MAXEXTENTS UNLIMITED

    );

    假设你是一个开发人员或DBA,你想查看数据库里面那些表或某个表是否分区表,你可以用下面的几种方法去查看。

    方法1:

    SELECT * FROM ALL_TABLES WHERE TABLE_NAME = "TEST"

    SELECT * FROM ALL_TABLES WHERE TABLE_NAME = "GPRS_CELLTOPVOL_WK";

    如图所示截图你会发现GPRS_CELLTOPVOL_WK表的TABLESPCAE_NAME为空,而表TEST的TABLESPCAE_NAME为SYSTEM,所以你可以通过TABLESPCAE_NAME是否为空来判断一个表是否为分区表。网上有人给出这种方法,但是要切记的是,不见得TABLESPCAE_NAME为NULL,则该表就是分区表,两者之间没有互推关系。OWNER为HR的COUNTRIES表就是一个例子。其实你可以通过 ALL_TABLES里的字段PARTITIONED的值为YES或NO来区分该表是否是分区表。如下下所示

    SELECT PARTITIONED FROM ALL_TABLES WHERE TABLESPACE_NAME IS NULL

    ORACLE数据库查看分区表相关信息的方法1 ORACLE数据库查看分区表相关信息的方法2

    方法2 你可以通过DBA_PART_TABLES、 ALL_PART_TABLES、 USER_PART_TABLES来查看分区表信息、这三者的具体差别如下:

    显示数据库所有分区表的信息:DBA_PART_TABLES

    显示当前用户可访问的所有分区表信息:ALL_PART_TABLES

    显示当前用户所有分区表的信息:USER_PART_TABLES

    SELECT * FROM ALL_PART_TABLES WHERE TABLE_NAME = "GPRS_CELLTOPVOL_WK"

    从DBA_PART_TABLES等表中你可以查看分区表的基本信息:例如分区表类型(通过PARTITIONING_TYPE字段查看)、子分区类型(SUBPARTITIONING_TYPE)、分区个数(PARTITION_COUNT)但是如果你想查看该表的详细分区信息,那么你可以通过DBA_TAB_PARTITIONS、ALL_TAB_PARTITIONS、USER_TAB_PARTITIONS这三个表去查看相关详细信息。三者之间的区别如下所示

    显示Oracle查看分区表信息 显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS

    显示当前用户可访问的所有分区表的详细分区信息:ALL_TAB_PARTITIONS

    显示当前用户所有分区表的详细分区信息:USER_TAB_PARTITIONS

    ORACLE数据库查看分区表相关信息的方法3

    如果您想查看分区表的分区列信息 ,那么你可以通过DBA_PART_KEY_COLUMNS、ALL_PART_KEY_COLUMNS、USER_PART_KEY_COLUMNS三个表来查看相关信息,如下图所示,三者之间的区别如下所示

    显示当前用户所有分区表的分区列信息:USER_PART_KEY_COLUMNS

    显示当前用户可访问的所有分区表的分区列信息:ALL_PART_KEY_COLUMNS

    显示分区列 显示数据库所有分区表的分区列信息:DBA_PART_KEY_COLUMNS

    ORACLE数据库查看分区表相关信息的方法4

    如果你想查看组合表的子分区信息以及子分区列信息情况,你可以从下面的这些表去查看具体相关情况

    显示当前用户所有组合分区表的子分区信息:USER_TAB_SUBPARTITIONS

    显示当前用户可访问的所有组合分区表的子分区信息:ALL_TAB_SUBPARTITIONS

    显示当前用户可访问的所有组合分区表的子分区信息:ALL_TAB_SUBPARTITIONS

    显示当前用户所有分区表的子分区列信息:USER_SUBPART_KEY_COLUMNS

    显示当前用户可访问的所有分区表的子分区列信息:ALL_SUBPART_KEY_COLUMNS

    显示子分区列 显示数据库所有分区表的子分区列信息:DBA_SUBPART_KEY_COLUMNS