我需要知道Oracle中真正的表空间大小.我有一些表空间,我需要知道它现在使用了多少空间以及有多少空闲空间(可能是可用空间的百分比).我在网上发现了一些sqls,但是所有这些都显示了基于水印的大小…这不是现在分配的真实空间,但据我所知,已达到的最高值…
所以我真正的需要是知道我是否有足够的空间来存储我经常编写的数据,我必须知道在删除其中一些数据之前我可以存储多少空间.
所以我真正的需要是知道我是否有足够的空间来存储我经常编写的数据,我必须知道在删除其中一些数据之前我可以存储多少空间.
谢谢
解决方法
试试这个:
-- Available space,by tablespace SELECT * FROM (SELECT tablespace_name FROM dba_tablespaces) LEFT OUTER JOIN (SELECT tablespace_name,SUM(bytes) AS total_bytes FROM dba_data_files GROUP BY tablespace_name) USING (tablespace_name) LEFT OUTER JOIN (SELECT tablespace_name,sum(bytes) AS used_bytes from dba_segments GROUP BY tablespace_name) USING (tablespace_name) LEFT OUTER JOIN (SELECT tablespace_name,SUM(bytes) AS free_bytes FROM dba_free_space GROUP BY tablespace_name) USING (tablespace_name);