zoukankan      html  css  js  c++  java
  • (ORACLE)查看分区表的相关信息

    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  

     

     

    方法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 

     


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

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

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

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

     

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

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

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

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

      

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

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

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

    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    「读书感悟」三体
    「PLC」PLC基本编程
    利用一个Demo说明Castle+NHibernate的实现
    采用jquery实现简单的计算器
    Html+css+Jquery模拟电影院购票
    Jquery实现简单的导航单并且经常使用
    H5的video元素实现的Demo
    JQuery编写的定时器实现时钟
    Castle.net
    1056. 组合数的和(15)
  • 原文地址:https://www.cnblogs.com/kerrycode/p/2096692.html
Copyright © 2011-2022 走看看