oracle查看表sql语句,查看Oracle表空间Sql语句

--查看Oracle表空间Sql语句

--1.查看所有表空间大小

SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 tablespacesize_M FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME;

--2.未使用的表空间大小

SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 TABSPACE_FREE_SIZE_M FROM DBA_FREE_SPACE

group by TABLESPACE_NAME;

--3.所有使用空间可以这样计算

SELECT a.tablespace_name,a.total,b.free, a.total-b.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.下面这条语句查看所有段的大小

select segment_nam,sum(bytes)/1024/1024 from USER_EXTENTS GROUP BY segment_name;

--5.在命令行情况下如何将结果放到一个文件里 用到了telnet

SET TRIMSPOOL ON

SET LINESIZE 2000

SET PAGESIZE 2000

SET NEWPAGE 1

SET HEADING OFF

SET TERM OFF

SPOOL D:\EXP.TXT

SELECT * FROM V$DATABASE;

spool off

--6.查看当前正在使用的临时表空间大小

SELECT SE.USERNAME,SE.SID,SU.BLOCKS*TO_NUMBER(RTRIM(P.VALUE)) AS SPACE,

tablespace,segtype,sql_text

FROM V$SORT_USAGE SU,V$PARAMETER P,V$SESSION SE,V$SQL S

WHERE P.NAME='db_block_size'

AND SU.SESSION_ADDR=SE.SADDR

AND S.HASH_VALUE=SU.SQLHASH

AND S.ADDRESS=SU.SQLADDR

order by se.username,se.sid;

--7.查询所有的表空间

SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;

--8.查看表空间中分布的用户信息

SELECT TABLESPACE_NAME,OWNER,SUM(BYTES) FROM DBA_SEGMENTS

GROUP BY TABLESPACE_NAME,OWNER;

--9.查看表空间已经使用的百分比

SELECT A.TABLESPACE_NAME,A.BYTES/1024/1024 "Sum MB",(A.BYTES-B.BYTES)/1024/1024 "used MB",B.BYTES/1024/1024 "free MB",

round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"  FROM

(SELECT TABLESPACE_NAME,SUM(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A,

(SELECT TABLESPACE_NAME,SUM(BYTES) BYTES, MAX(BYTES) LARGEST FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B

WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME

ORDER BY ((A.BYTES-B.BYTES)/A.BYTES) DESC;

--"Sum MB"表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小

--比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB"就是700MB

--"userd MB" 表示表空间已经使用了多少

--"free MB" 表示表空间剩余多少

--”percent_user"表示已经使用的百分比

--10.比如从9中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件

--每个数据文件是否自动扩展,可以自动扩展的最大值

SELECT FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024 "byte MB" ,MAXBYTES/1024/1024 "maxbytes MB" FROM DBA_DATA_FILES

where tablespace_name='EXAMPLE';

--11.查看xxx表空间是否为自动扩展

SELECT FILE_ID,FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE,INCREMENT_BY FROM DBA_DATA_FILES

order by file_id desc;

--12.比如MLOG_NORM_SAPCE表空间目前的大小为19G,但是最大每个数据文件只能为20GB,数据文件快要写满,

--可以境加表空间的数据文件,用操作系统unix,linux中的df -g命令

--获取创建表空间的语句

SELECT DBMS_METADATA.GET_DDL('TABLESPACE','EXAMPLE') from dual;

--13.确认磁盘空间足够,增加一个数据文件

ALTER TABLESPACE MLOG_NORM_SPACE

ADD DATAFILE '/orace/Mlog_Norm_data001.dbf'

SIZE 10M AUTOEXTEND ON MAXSIZE 20G;

--14.验证已经增加的数据文件

SELECT FILE_NAME,FILE_ID,TABLESPACE_NAME FROM DBA_DATA_FILES

WHERE TABLESPACE_NAME='MLOG_NORM_SPACE';

--15.删除表空间数据文件

ALTER TABLESPACE MLOG_NORM_SPACE

drop datafile '/orace/Mlog_Norm_data001.dbf';

--16.确定控制文件的名称与大小

select name,block_size*file_size_blks bytes from v$controlfile;

--17.确定联机重做日志文件成员的名称和大小

select member,bytes from v$log join v$logfile using(group#);

--18.确定数据文件和临时文件的名称和大小 SELECT NAME,BYTES FROM V$DATAFILE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值