查看ORACLE表空间,表大小,建表日期

时间:2022-09-15 08:38:27

先直接说查询语句吧,如下:

select segment_name, sum(bytes)/1024/1024 MByte 
FROM dba_segments
WHERE 1=1
AND owner ='USER'
AND segment_type ='TABLE'
AND tablespace_name ='AGENT'
GROUP BY segment_name
order by MByte desc

再来看一下上述语句的查询条件:

1. owner ='USER'   用户名,要查找的对象名称。

2. segment_type ='TABLE'   对象类型,如下所示产:

    缓冲 'CACHE'
    簇 'CLUSTER'
    索引 'INDEX'
    分区索引 'INDEX PARTITION'
    子分区索引 'INDEX SUBPARTITION'
    大对象索引 'LOBINDEX'
    大对象段 'LOBSEGMENT'
    嵌套表 'NESTED TABLE'
    回滚段 'ROLLBACK'
    表 'TABLE'
    分区表 'TABLE PARTITION'
    子分区表 'TABLE SUBPARTITION'
    undo段 'TYPE2 UNDO'

3. tablespace_name ='AGENT' 表空间名称。

懂oracle的朋友其实一眼就可以看出, oracle对于空间管理,都登记在 dba_segments 表中。 要查看空间使用情况,直接从dba_segments 表中按一定的条件搜索即可。

其实还有一个表 user_segments,它登记了用户的空间使用信息。这两个表的结构是基本一致的。 这里的用户要理解为这个用户的表,索引,表空间等。 从表名上不难理解,dba_segments 是包含了user_segments的信息,前者还包含了dba可以看到的oracle数据库系统管理的一些对象空间信息。

查看对象的创建时间

SELECT ObjECT_NAME TABLE_NAME,  to_char(created, 'yyyyMMddhhmiss') crttm
FROM ALL_OBJECTS

WHERE 1=1

AND OWNER='DEVUSER'

AND object_type='TABLE'
order by crttm desc

其实只要仔细看一下表 ALL_OBJECTS 的结构就知道如何查看了.