如何查询表空间使用情况
1. 查看所有表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
2 group by tablespace_name;
2. 已经使用的表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
2 group by tablespace_name;
3. 所以使用空间可以这样计算
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;
4. 下面这条语句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
5. 还有在命令行情况下如何将结果放到一个文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off
查看的方法和详细的操作步骤如下:
1、首先,因为oracle在Linux系统下运行,所以必须连接到Linux系统,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,连接成功,进入Oracle控制台。 输入命令“sqlplus / as sysdba”,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,在sql命令行上,输入以下代码,如下图所示,然后进入下一步。
4、最后,完成上述步骤后,就可以查看相应的结果了,如下图所示。这样,问题就解决了。
快速的查看剩余表空间:
因为oracle运行在Linux系统下,首先,要连接Linux系统。
连上后,进行oracle控制台。输入命令: sqlplus / as sysdba;
在sql命令行,输入:
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
这样就可以查看到相应结果。
1. 查看所有表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
2 group by tablespace_name;
2. 已经使用的表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
2 group by tablespace_name;
3. 所以使用空间可以这样计算
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;
4. 下面这条语句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
5. 还有在命令行情况下如何将结果放到一个文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;
季侍:1.查询oracle表空间的使用情况 select b.file_id文件ID,b.tablespace_name表空间,b.file_name 物理文件名,b.bytes 总字节数,(b.bytes-sum(nvl(a.bytes,0))) 已使用,sum(nvl(a.bytes,0))剩余,sum(nvl(a.bytes,0))\/(b.bytes)*100 剩余百分比 from dba_free_space a,dba_data_files...
季侍:查看的方法和详细的操作步骤如下:1、首先,因为oracle在Linux系统下运行,所以必须连接到Linux系统,如下图所示,然后进入下一步。2、其次,完成上述步骤后,连接成功,进入Oracle控制台。 输入命令“sqlplus \/ as sysdba”,如下图所示,然后进入下一步。3、接着,完成上述步骤后,在sql命令行上,...
季侍:1、首先我们开启Oracle管理工具,找到Tablespaces。2、首先要看的是表空间的总大小和使用状况以及当前状态。3、Free Space 里面是各个表中的相关大小信息(一个表空间可能有多个表在使用)。4、Objects 就如第三步中所提到的使用这个表空间的表明细。5、Script 是创建表空间的PL\/SQL,我们可以去了解它的...
季侍:group by t.tablespace_name;--2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name,round(bytes\/(1024*1024),0) total_space from dba_data_files order by tablespace_name;3.查看所有表空间使用情况 select b.file_id 文件ID号,b....
季侍:怎么查询oracle表空间总大小 查看所有表空间使用情况 :select b.file_id 文件ID号,b.tablespace_name 表空间名,b.bytes\/1024\/1024||'M'字节数,(b.bytes-sum(nvl(a.bytes,0)))\/1024\/1024||'M' 已使用,sum(nvl(a.bytes,0))\/1024\/1024||'M' 剩余空间,100 - sum(nvl(a.bytes,0))\/(...
季侍:1、因为oracle运行在Linux系统下,首先,要连接Linux系统。2、连上后,进行oracle控制台。输入命令: sqlplus \/ as sysdba;3、在sql命令行,输入:SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_...
季侍:Oracle版本:Oracle 10g 一、查看表占用空间大小语句:select t.segment_name, t.segment_type, sum(t.bytes \/ 1024 \/ 1024) "占用空间(M)"from dba_segments twhere t.segment_type='TABLE'group by OWNER, t.segment_name, t.segment_type;查询结果:二、查看表空间占用空间大小语句:select ...
季侍:查询剩余大小更简单一些,dba_free_space就可以了。如果非要查使用的大小,那么只能去查基础表sys.sm$ts_used,这张表内的bytes字段就是使用的大小。当然,你用总大小减去剩余大小或者表空间内所有segments相加,也能得到使用大小。
季侍:1. 查看所有表空间大小 SQL> select tablespace_name,sum(bytes)\/1024\/1024 from dba_data_files 2 group by tablespace_name;2. 已经使用的表空间大小 SQL> select tablespace_name,sum(bytes)\/1024\/1024 from dba_free_space 2 group by tablespace_name;3. 所以使用空间可以这样计算 select ...
季侍:这个问题根据断句的不同有两种可能:(1)索引 ——表空间的使用情况,我知道数据库本身没有索引表空间,但是如果我自己建立了一个表空间,通俗名称叫做索引表空间呢?所以有索引表空间还是有可能的,只是可能性不大。基本上查询dba_free_space就能查到表空间的剩余量,如果非要查询用了百分之多少之类的...