先直接说查询语句吧,如下:
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 的结构就知道如何查看了.