我想查一下数据库表空间使用情况。求来一个语句却发现USED和FREE加起来和TOTAL居然对不上。请各位高人指点一下。 SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME
AND A.TABLESPACENAME = '表空间名'; 另外,假如我只有以下这些表的访问权限,能不能查到指定表空间的使用情况呢?
DBA_EXTENTS
DBA_DATA_FILES
DBA_TAB_PARTITONS
DBA_TAB_SUBPARTITONS
DBA_OBJECTS
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME
AND A.TABLESPACENAME = '表空间名'; 另外,假如我只有以下这些表的访问权限,能不能查到指定表空间的使用情况呢?
DBA_EXTENTS
DBA_DATA_FILES
DBA_TAB_PARTITONS
DBA_TAB_SUBPARTITONS
DBA_OBJECTS
解决方案 »
- 请教高手
- A表触发器事件是由B表触发出来的,这样如何从A表触发器取出B表新的update记录数据???
- 能不能实现类似ROWNUM 的功能?
- 求教一个sql的写法。:)只有20分了。。。别嫌少
- 想找很懂Oracle的人,有工作介绍!
- 在linux中怎么使用dgmgrl?
- 求条查询语句:select * from a where 姓名 like '%x%' 如果x是变量如何写?
- 日期格式转换问题!!
- Sql server中的语法如何转成oracle中的,问题如下
- 关于Oracle的安装问题
- oracle的导入问题,可以导入视图,但不能导入表的数据?
- ORA-00020:maximum number of processess(150) exceeded
只有当DELETE 或UPDATE时,如果由此操作而空闲的空间足够让新记录进入数据库时,ORACLE才会自动回收空间,并更新一些相关的数据字典.所以,你查出来USED与FREE相加与TOTAL不相符,也没有什么奇怪的.
谢谢各位。
SELECT owner,segment_name,SUM(bytes)/1024/1024 FROM dba_extents
WHERE tablespace_name='表空间名'
GROUP BY owner,segment_name
ORDER BY 3 DESC