查看Oracle表空间SQL语句

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查看Oracle表空间SQL语句

1.查看所有表空间大小

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

GROUP BY TABLESPACE_NAME;

2.未使用的表空间大小

SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024TABSPACE_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/1024TOTAL FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME)A,

(SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME)B

where a.tablespace_name=b.tablespace_name;

4.下面这条语句查看所有段的大小

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

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

SET TRIMSPOOL ON

SET LINESIZE2000

SET PAGESIZE2000

SET NEWPAGE1

SET HEADING OFF

SET TERM OFF

SPOOL D:\EXP.TXT

SELECT*FROM V$DATABASE;

spool off

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

SELECT ERNAME,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 ='db_block_size'

AND SU.SESSION_ADDR=SE.SADDR

AND S.HASH_VALUE=SU.SQLHASH

AND S.ADDRESS=SU.SQLADDR

order by ername,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.确认磁盘空间足够,增加一个数据文件

相关文档
最新文档