ALTER DATABASE DATAFILE ‘C:ORACLEXEAPPORACLEORADATAXESYSTEM.DBF‘ resize 4096M; SELECT USED.TABLESPACE_NAME, USED.USED_BYTES AS "USED SPACE(IN GB)", FREE.FREE_BYTES AS "FREE SPACE(IN GB)"FROM(SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, ‘99,999,990.99‘) AS USED_BYTES FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME) USEDINNER JOIN(SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, ‘99,999,990.99‘) AS FREE_BYTES FROM USER_FREE_SPACE GROUP BY TABLESPACE_NAME) FREEON (USED.TABLESPACE_NAME = FREE.TABLESPACE_NAME);select df.tablespace_name "Tablespace",totalusedspace "Used MB",(df.totalspace - tu.totalusedspace) "Free MB",df.totalspace "Total MB",round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace))"Pct. Free"from(select tablespace_name,round(sum(bytes) / 1048576) TotalSpacefrom dba_data_files group by tablespace_name) df,(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_namefrom dba_segments group by tablespace_name) tuwhere df.tablespace_name = tu.tablespace_name ;
Query oracle space occupation
标签:
小编还为您整理了以下内容,可能对您也有帮助:
关于oracle导出时的query用法
6)QUERY参数后面跟的是where条件,值得注意的是,整个where子句需要使用""括起来,where子句的写法和SELECT中相同;
如果是UNIX平台所有"和'都需要使用\u26469屏蔽它们的特殊含义:
exp test/test file=1.dmp log=1.log tables=testtable query="where c1=20 and c2=test"
注意:>,<,单引号等特殊字符需要转译
exp test/test file=1.dmp log=1.log tables=testtable query="where c1\>20 and c2=to_date\(\'20090506\',\'yyyymmdd\'\)"
如果是windows平台,则使用下面的格式:
exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name='gototop'"""(使用unix下格式也是可以的,具体情况测试一下即可)
oracle 如何取表中所有数据的20%
select t.*,t.rid from (select * ,rownum as rid from table) t
where rid<= (select round(count(*)*0.2) as count from table);
查询数据库中哪些表空间的空闲空间百分比低于20%
本人对oracle了解有限,
以下摘自:http://blog.csdn.net/ecast/article/details/6911535,希望能够帮到你。
--1查看表空间已经使用的百分比
Sql代码 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”表示已经使用的百分比
--2比如从1中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数
据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。
Sql代码 select file_name,tablespace_name,bytes/1024/1024 "bytes MB",maxbytes/1024/1024 "maxbytes MB" from dba_data_files
where tablespace_name='MLOG_NORM_SPACE';
--2.1 查看 xxx 表空间是否为自动扩展
Sql代码 select file_id,file_name,tablespace_name,autoextensible,increment_by from dba_data_files order by file_id desc;
--3比如MLOG_NORM_SPACE表空间目前的大小为19GB,但最大每个数据文件只能为20GB,数据文件快要写满,可以增加表空间的数据文件
用操作系统UNIX、Linux中的df -g命令(查看下可以使用的磁盘空间大小)
获取创建表空间的语句:
Sql代码 select dbms_metadata.get_ddl('TABLESPACE','MLOG_NORM_SPACE') from al;
--4确认磁盘空间足够,增加一个数据文件
Sql代码 alter tablespace MLOG_NORM_SPACE
add datafile '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
size 10M autoextend on maxsize 20G
--5验证已经增加的数据文件
Sql代码 select file_name,file_id,tablespace_name from dba_data_files
where tablespace_name='MLOG_NORM_SPACE'
--6如果删除表空间数据文件,如下:
Sql代码 alter tablespace MLOG_NORM_SPACE
drop datafile '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'