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,和这个是不同的。
这是什么表,哪个字段表明了最大最小
追答max..
min..
看不懂吗
你确定?没有max…和min…
追答user_segments这里面也有
以上是关于oracle如何查询当前用户分区表的最大分区,最小分区和当前分区的数量的主要内容,如果未能解决你的问题,请参考以下文章