天天看点

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

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

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

方法1:  

如图所示截图你会发现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)查看分区表的相关信息
(ORACLE)查看分区表的相关信息

方法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)查看分区表的相关信息

如果您想查看分区表的分区列信息 ,那么你可以通过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)查看分区表的相关信息

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

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

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

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

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

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