怎么查看oracle表空间,剩余大小,表空间利用

如何查看oracle表空间已使用大小Select Segment

转:
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 "表空间名称",
100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "占用率(%)",
round(a.bytes_alloc/1024/1024,2) "容量(M)",
round(nvl(b.bytes_free,0)/1024/1024,2) "空闲(M)",
round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "使用(M)",
Largest "最大扩展段(M)",
to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "采样时间"
from (select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
(select f.tablespace_name,
sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b,
(select round(max(ff.length)*16/1024,2) Largest,
ts.name tablespace_name
from sys.fet$ ff, sys.file$ tf,sys.ts$ ts
where ts.ts#=ff.ts# and ff.file#=tf.relfile# and ts.ts#=tf.ts#
group by ts.name, tf.blocks) c
where a.tablespace_name = b.tablespace_name and a.tablespace_name = c.tablespace_name

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_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;



4、这样就可以查看到相应结果。 完成效果图。




select
b.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name

给个邮箱,我给个oracle工具你用,很简单很方便的帮你解决你的问题:

在我给你的工具中一样使用用户名和密码以normal模式登陆所在的服务数据库,之后在菜单‘管理’项中有‘表空间信息’打开:



select * from dba_tablespaces
结果返回数据库所有表空间数据

select tablespace_name ,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
select tablespace_name ,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

  • 19176858047: “oracle”怎么查看表的空间里有哪些表?
    扶妍:6、在查询到表空间的信息之后,我们有时需要删除没用的表空间,使用命令drop tablespace xxx including contents and datafiles;即可。甲骨文股份有限公司(Oracle)是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。...
  • 19176858047: 怎么查看oracle硬盘空间不足
    扶妍:对于Oracle数据库而言磁盘空间主要体现在表空间上,可使用sql语句进行查看Oracle 表空间的大小及使用情况:1、查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes \/ (1024 * 1024)), 0) ts_size FROM ...
  • 19176858047: oracle怎么查看临时表空间具体存放的数据
    扶妍:select status,enabled, name, bytes\/1024\/1024 file_size from v_$tempfile;--sys用户查看 2、缩小临时表空间大小 alter database tempfile 'D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\TELEMT\\TEMP01.DBF' resize 100M;3...
  • 19176858047: 如何查看oracle剩余表空间
    扶妍:\/\/查看表空间剩余空间(M)select tablespace_name,sum(bytes)\/1024\/1024 free_space from dba_free_space group by tablespace_name;\/\/详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 select t.from (...
  • 19176858047: oracle 9i中,如何查看一个库中有多少表空间和一个表空间中有多少张表...
    扶妍:用sys账号或者拥有DBA权限的账号登录系统,通过表DBA_TABLESPACES查询表空间的信息,通过表DBA_ALL_TABLES查询表的信息,要知道一个空间下有那些表,通过TABLESPACE_NAME字段进行限制。或者也可以像楼一说的通过PL\/SQL Developer...
  • 19176858047: 如何查看oracle所有的表空间?
    扶妍:1.开启Oracle管理工具,找到Tablespaces.2.首先要看的是表空间的总大小和使用状况以及当前状态。3.Free Space 里面是各个表中的相关大小信息(一个表空间可能有多个表在使用)。4.Objects 就如第三步中所提到的使用这个表空间...
  • 19176858047: 如何在Oracle中查看各个表,表空间占用空间的大小
    扶妍: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....
  • 19176858047: 怎么查看oracle数据库数据量大小
    扶妍:2、查看所有表空间对应的数据文件:select tablespace_name,file_name from dba_data_files;3、修改数据文件大小:alter database datafile 'H:\\ORACLE\\PRODUCT\\10.1.0\\ORADATA\\ORACLE\\USERS01.DBF' RESIZE 10240M;...
  • 19176858047: 怎么看oracle表空间够不够用 比如我有一个备份文件 是 60M 表空间要...
    扶妍:下面SQL用来查看表空间总的大小,可用空间大小,占用百分比,select fs.tablespace_name "Tablespace",(df.totalspace-fs.freespace) "Used MB",fs.freespace "Free MB",df.totalspace "Total MB",round(100*...
  • 19176858047: 如何查看oracle表空间已使用大小
    扶妍:查询剩余大小更简单一些,dba_free_space就可以了。如果非要查使用的大小,那么只能去查基础表sys.sm$ts_used,这张表内的bytes字段就是使用的大小。当然,你用总大小减去剩余大小或者表空间内所有segments相加,也能得到使用...

  • 相关链接

  • 查询表空间大小及使用情况
  • oracle表空间剩余大小
  • 查询oracle数据库剩余空间
  • oracle查看表空间文件位置
  • 经验分享为自博友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
    有问题请发邮件给我们
    © 经验分享网