使用如下sql语句"select * from ( Select a.tablespace_name, (a.bytes- b.bytes) "表空间使用大小(BYTE)", a.bytes/(1024*1024*1024) "表空间大小(GB)", b.bytes/(1024*1024*1024) "表空间剩余大小(GB)", (a.bytes- b.bytes)/(1024*1024*1024) "表空间使用大小(GB)", to_char((1 - b.bytes/a.bytes)*100,'99.99999') || '%' "使用率" from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name union all select c.tablespace_name, d.bytes_used "表空间使用大小(BYTE)", c.bytes/(1024*1024*1024) "表空间大小(GB)", (c.bytes-d.bytes_used)/(1024*1024*1024) "表空间剩余大小(GB)", d.bytes_used/(1024*1024*1024) "表空间使用大小(GB)", to_char(d.bytes_used*100/c.bytes,'99.99999') || '%' "使用率" from (select tablespace_name,sum(bytes) bytes from dba_temp_files group by tablespace_name) c, (select tablespace_name,sum(bytes_cached) bytes_used from v$temp_extent_pool group by tablespace_name) d where c.tablespace_name = d.tablespace_name ) order by tablespace_name"查询表空间相关信息时,可查询到TEMP表空间信息,使用sql语句"SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS SIZE_MBFROM DBA_DATA_FILES;"时却未查到名为TEMP的表空间,请论述原因和解决办法,可以多思考一会
时间: 2024-03-14 09:49:54 浏览: 137
查询表空间使用率的语句
原因是因为TEMP表空间不属于DBA_DATA_FILES,而属于DBA_TEMP_FILES。DBA_DATA_FILES只包含数据文件,而DBA_TEMP_FILES包含临时表空间的数据文件。
要查询TEMP表空间的信息,应使用以下SQL语句:
SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS SIZE_MB FROM DBA_TEMP_FILES;
这样就可以查到TEMP表空间的信息了。
阅读全文