文档详情

查看Oracle表空间SQL语句.pdf

发布:2017-07-08约3.25千字共3页下载文档
文本预览下载声明
查看Oracle表空间SQL语句 1.查看所有表空间大小 SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 tablespacesize_M FROM DBA_DATA_FILES GROUPBYTABLESPACE_NAME; 2.未使用的表空间大小 SELECTTABLESPACE_NAME,SUM(BYTES)/1024/1024TABSPACE_FREE_SIZE_MFROM DBA_FREE_SPACE groupbyTABLESPACE_NAME; 3.所有使用空间可以这样计算 SELECTa.tablespace_name,a.total,b.free,a.total-b.freeusedfrom ( SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 TOTAL FROM DBA_DATA_FILES GROUPBYTABLESPACE_NAME)A, (SELECTTABLESPACE_NAME,SUM(BYTES)/1024/1024FREEFROMDBA_FREE_SPACE GROUPBYTABLESPACE_NAME)B wherea.tablespace_name=b.tablespace_name; 4.下面这条语句查看所有段的大小 selectsegment_nam,sum(bytes)/1024/1024fromUSER_EXTENTSGROUPBYsegment_name; 5.在命令行情况下如何将结果放到一个文件里 用到了telnet SETTRIMSPOOLON SETLINESIZE2000 SETPAGESIZE2000 SETNEWPAGE 1 SETHEADINGOFF SETTERMOFF SPOOLD:\EXP.TXT SELECT*FROMV$DATABASE; spooloff 6.查看当前正在使用的临时表空间大小 SELECT SE.USERNAME,SE.SID,SU.BLOCKS*TO_NUMBER(RTRIM(P.VALUE)) AS SPACE,tablespace,segtype,sql_text FROMV$SORT_USAGESU,V$PARAMETERP,V$SESSIONSE,V$SQLS WHEREP.NAME=db_block_size ANDSU.SESSION_ADDR=SE.SADDR ANDS.HASH_VALUE=SU.SQLHASH ANDS.ADDRESS=SU.SQLADDR orderbyse.username,se.sid; 7.查询所有的表空间 SELECTTABLESPACE_NAMEFROMDBA_TABLESPACES; 8.查看表空间中分布的用户信息 SELECTTABLESPACE_NAME,OWNER,SUM(BYTES)FROMDBA_SEGMENTS GROUPBYTABLESPACE_NAME,OWNER; 9.查看表空间已经使用的百分比 SELECT A.TABLESPACE_NAME,A.BYTES/1024/1024 Sum MB,(A.BYTES-B.BYTES)/1024/1024usedMB,B.BYTES/1024/1024freeMB, round(((a.bytes-b.bytes)/a.bytes)*100,2)percent_used FROM (SELECTTABLESPACE_NAME,SUM(BYTES)BYTES FROM DBA_DATA_FILES GROUP BYTABLESPACE_NAME)A, (SELECT TABLESPACE_NAME,SUM(BYTES) BYTES, MAX(BYTES) LARGEST FROM DBA_FREE_SPACEGROUPBYTABLESPACE_NAME)B WHEREA.TABLESPACE_NAME=B.TABLESPACE_NAME ORDERBY((A.BYTES-B.BYTES)/A.BYTES)DESC; --SumMB表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小 --比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空 间的 “SumMB就是700MB --
显示全部
相似文档