暂无图片
如何同时查询表的大小和创建时间?
我来答
分享
一念之间
2021-08-29
如何同时查询表的大小和创建时间?

表的大小

select OWNER,TABLESPACE_NAME, t.segment_name, t.segment_type,sum(t.bytes / 1024 / 1024 /1024 ) total_GB from dba_segments t where t.owner = upper('&username') and t.segment_type='TABLE' group by OWNER,TABLESPACE_NAME, t.segment_name, t.segment_type order by total_GB;


用户下表的创建时间
select OWNER,OBJECT_NAME,CREATED,STATUS,TIMESTAMP from dba_objects where OWNER='&' and CREATED BETWEEN '&1' AND &2' order by CREATED;



如何把以上两个联合查询?就是某个时间段 某些表的大小  

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
三笠丶
暂无图片

获取 某个时间段 某些表的大小 基本无法实现,逻辑不对;表的大小是实时的,创建时间是固定的。

除非你的表是分区表,比如按时间字段的范围分区。

暂无图片 评论
暂无图片 有用 0
一念之间
题主
2021-08-29
您好,感谢回答,那这意思就是我要先查询A用户的2018年创建的所有表通过dba_objects视图,然后在通过dba_segments这视图再查每个表大小?但是OBJECT_NAME这列有的segment_name这列不一定有,这两个不能话等号吗?不都是表名吗?
流星

select * from
(select OWNER,TABLESPACE_NAME, t.segment_name, t.segment_type,sum(t.bytes / 1024 / 1024 /1024 ) total_GB
from dba_segments t where t.owner = upper(’&username’) and t.segment_type=‘TABLE’ group by OWNER,TABLESPACE_NAME, t.segment_name, t.segment_type) s
right join
(select OWNER,OBJECT_NAME,CREATED,STATUS,TIMESTAMP from dba_objects where OWNER=upper(’&username’) and CREATED BETWEEN ‘&1’ AND ‘&2’) o
on o.OWNER=s.owner and o.OBJECT_NAME=s.segment_name
order by CREATED,total_GB
供参考

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