oracle如何查询当前用户分区表的最大分区,最小分区和当前分区的数量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle如何查询当前用户分区表的最大分区,最小分区和当前分区的数量相关的知识,希望对你有一定的参考价值。

最大最小分区,分区数量,可以通过user_segments获得。
因为每一个表分区都是一个segment,所以可以通过这个获得。
一般情况下,我们认为表中的bytes就是这个分区的大小。
user的视图中欧式当前用户的分区,通过table_name分组,paratition_name is not null 然后就可以求出最大分区和最小分区,count求出分区数量。追问

能把sql语句写来看看吗

追答

我大概写一个,不过我这里没环境,没法测试啊,而且我也记不住segemnts表中的字段,只能是凭着记忆写,有些字段名可能找的不是那么准。
select b.table_name,b.paratition_name,(case when b.types=a.最大 then a.最大 when b.types=a.最小 then a.最小 end)最大最小空间,a.总数 from
(select table_name,max(type) 最大 ,min(type) 最小,count(*) 总数 from user_segments where partirion_name is not null group by table_name) a,
user_segments b where a.table_name=b.table_name and (b.types=a.最大 or b.types=a.最小)

不过似乎如果有子分区的话,这个语句就不能用了,所以子分区还要再来一层,因为一个子分区就是一个segments,而且子分区的字段好像是subpartition_name,和这个是不同的。

参考技术A select * from user_tab_partitions where table_name='TGS_PASSEDCAR_HIS4' order by partition_name; 参考技术B 查看USER_EXTENTS追问

这是什么表,哪个字段表明了最大最小

追答

max..
min..
看不懂吗

追问

你确定?没有max…和min…

追答

user_segments这里面也有

以上是关于oracle如何查询当前用户分区表的最大分区,最小分区和当前分区的数量的主要内容,如果未能解决你的问题,请参考以下文章

oracle怎样查询哪些表分区?

oracle 查询哪些表分区

oracle怎样查询哪些表分区?

查询分区最大值 oracle

如何查看与显示oracle表的分区信息

Oracle数据库分区表操作方法