关于Oracle分区表信息的查询

2014-11-24 18:12:09 · 作者: · 浏览: 0

查看所有用户分区表及分区策略(1、2级分区表均包括):


SELECT p.table_name AS 表名, decode(p.partitioning_key_count, 1, '主分区') AS 分区类型,
p.partitioning_type AS 分区类型, p.column_name AS 分区键,
decode(nvl(q.subpartitioning_key_count, 0), 0, '无子分区', 1, '子分区') AS 有无子分区,
q.subpartitioning_type AS 子分区类型, q.column_name AS 子分区键
FROM (SELECT a.table_name, a.partitioning_type, b.column_name, a.partitioning_key_count
FROM user_part_tables a, user_part_key_columns b
WHERE a.table_name = b.NAME
AND b.object_type = 'TABLE') p,
(SELECT a.table_name, a.subpartitioning_type, b.column_name, a.subpartitioning_key_count
FROM user_part_tables a, user_subpart_key_columns b
WHERE a.table_name = b.NAME
AND a.subpartitioning_key_count <> 0
AND b.object_type = 'TABLE') q
WHERE p.table_name = q.table_name(+)
ORDER BY 5,4,1;


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


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


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


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


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


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


显示子分区信息显示数据库所有组合分区表的子分区信息:DBA_TAB_SUBPARTITIONS


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


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


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


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


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


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


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


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


--------------------------------------------------------------------------------------------------


select * from user_tables a where a.partitioned='YES'



删除一个表的数据是truncate table table_name;


删除分区表一个分区的数据是alter table table_name truncate partition p5;


如果我要将分区表中各个分区的数据都清空,可以用truncate table table_name直接删除;


也可以用:


alter table table_name truncate partition p1;


alter table table_name truncate partition p2;


alter table table_name truncate partition p3;


alter table table_name truncate partition p4;


alter table table_name truncate partition p5;


alter table table_name truncate partition p6;


逐个删除。