暂无图片
分享
佳佳
2021-05-28
查看分区表的各个分区和行数/大小 SQL

通过如下SQL,DBA_TAB_PARTITIONS和dba_segments视图进行join,查看一个分区表的各个分区及其大小和行数
帮忙查看语句哪里有问题?为什么结果有两个相同的分区,结果还不对?

TABLE_OWNER     TABLE_NAME               PARTITION_NAME                 PARTITION_POSITION INTERVAL     size(MB)   NUM_ROWS 
--------------- ------------------------ ------------------------------ ------------------ ---------- ---------- ---------- 
PROB          O_PRO                      O_PRO_2018_09_09                         38            NO        3520        450560 
PROB          O_PRO                      O_PRO_2018_09_09                         38            NO       .0625             8 
PROB          O_PRO                      O_PRO_2018_10_10                         39            NO       23641       3026048 
PROB          O_PRO                      O_PRO_2018_10_10                         39            NO       .0625             8 
PROB          O_PRO                      O_PRO_2018_11_11                         40            NO       25728       3293184 
PROB          O_PRO                      O_PRO_2018_11_11                         40            NO       .0625             8 
PROB          O_PRO                      O_PRO_2018_12_12                         41            NO       25500       3264000 
PROB          O_PRO                      O_PRO_2018_12_12                         41            NO       .0625             8 
PROB          O_PRO                      O_PRO_2019_01_01                         42            NO       23552       3014656 
PROB          O_PRO                      O_PRO_2019_01_01                         42            NO       .0625             8 
PROB          O_PRO                      O_PRO_2019_02_02                         43            NO       13008       1665024 
PROB          O_PRO                      O_PRO_2019_02_02                         43            NO       .0625             8 
收藏
分享
6条回答
默认
最新
徐君

请列出你写的where 条件 两表关联条件写漏了吧

暂无图片 评论
暂无图片 有用 0
佳佳

抱歉,忘记给语句了

select a.TABLE_OWNER,a.TABLE_NAME,a.PARTITION_NAME,a.PARTITION_POSITION,a.INTERVAL,b.BYTES/1024/1024 "size(MB)",a.NUM_ROWS,b.blocks,b.TABLESPACE_NAME 
from DBA_TAB_PARTITIONS a , dba_segments b  where  a.TABLE_NAME=b.SEGMENT_NAME and a.PARTITION_NAME=b.PARTITION_NAME and a.TABLE_NAME='&TABLE_NAME' and a.TABLE_OWNER='&TABLE_OWNER' order by a.PARTITION_POSITION;
暂无图片 评论
暂无图片 有用 0
cqiwen

可以试试改成left join

暂无图片 评论
暂无图片 有用 0
沈宏

两个视图的owner要相同

暂无图片 评论
暂无图片 有用 1
绿落叶

A.TABLE_OWNER=B.OWNER

暂无图片 评论
暂无图片 有用 0
佳佳
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏