(ORACLE)查看分区表的相关信息

摘要:
ORACLE数据库如何查看有关分区表的信息?方法1:SELECT*FROMALL_ TABLESWHETABLE_NAME='TEST'SELECT*FROMALL_ TABLESWETABLE_NAME='GPRS_ CELLTOPVOL_ WK';如屏幕截图所示,您将发现WK表NAME的GPRS_CELLTOPVOL_TABLESPAE为空,而TEST_NAME表的TABLESPAE为SYSTEM,因此您可以使用TABLESPAE_是否为空来确定表是否为分区表。Internet上有人给出了这种方法,但请记住,TABLESPAE并不总是可用的。如果NAME为NULL,则表是一个分区表,它们之间没有任何关系。

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 

免责声明:文章转载自《(ORACLE)查看分区表的相关信息》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Exchange 2016高可用及容灾架构选型参考Cesium粒子系统学习下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

plsql导出导入 表结构、表数据、存储过程等

导出:首先点击   TOOLS,选择  EXPORT TABLES  选中你需要导出的表,   勾选  “Create tables” 是因为在导入的数据库中没有此表 如果勾选"Drop tables" 而没有勾选 “Create tables” ,而数据库中没有此表,会报表和视图不存在 Output file 为导出的路径   如果你想导的表  数据记录...

Oracle中的关键字

NVL和COALESCE的区别: nvl(COMMISSION_PCT,0)如果第一个参数为null,则返回第二个参数如果第一个参数为非null,则返回第一个参数 COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)从左往右数,遇到第一个非null值,则返回该非null值。多层判断 第一点区别:从上面可以知道,nvl只适合于两个参数的,C...

psotgres、timescaledb

postgres介绍 PostgreSQL (简称Postgres )是一个开源,强大,先进,高性能和稳定的关系文档数据库系统。 它使用并增强了SQL语言,并具有大量功能,可实现安全的数据存储和管理。 它高效,可靠,可扩展,可处理大量复杂的数据量并设置企业级和容错环境,同时确保高数据完整性。 Postgres还具有高度可扩展性,索引附带API等功能,因此您...

AMBARI部署HADOOP集群(3)

1.安装ambari-server yum -y install ambari-server 2.ambariserver需要一个数据库存储元数据,默认使用的 Postgres数据库。默认的用户名和密码是:ambari/bigdata 。但是一般情况下,后面还要安装 hive和 Ranger,也需要一个存元数据的数据库,所以使用一个mysql做为数据库。需...

Oracle 11g 卸载日志

f:appadminproduct11.2.0dbhome_2deinstall>deinstallChecking for required files and bootstrapping ...Please wait ...复制了 14 个文件复制了 611 个文件已复制 1 个文件。已复制 1 个文件。Location of logs C:Us...

oracle Database Link

1 Database Link 的创建: 有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机。服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务器A上实例配置: BIWG_TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20...