您的位置:首页 > 数据库 > Oracle

在oracle中计算表空间占用的物理空间

2016-01-07 15:41 501 查看
select file#, name from v$datafile;

select  (select max(block_id) from dba_extents where file_id= 30)  * 8 / 1024 from dual;

 SELECT SUM(T.BYTES) / 1024 / 1024 MB

     FROM USER_SEGMENTS T

     WHERE T.SEGMENT_NAME = 'DATAHDS.TH_FA_VALUATION_TEMP';

3.计算该表空间实际占用的空间:

--查询数据块的大小,单位是 byte

SQL> show parameter db_block_size;

------------------------------------ ----------- ------------------------------

db_block_size integer 8192

--8192 byte = 8 kb

--接下来计算该表空间占用的物理空间

SQL> select 4193920 * 8 / 1024 from dual;

65673*8/1024

------------

513.070313

--实际占用的物理空间是 513MB 多点

4.最后一步,把我们的数据文件尺寸修改得比这个表空间实际占用的物理空间大点就行了:

SQL> alter database datafile 'D:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF' resize 600m;

数据库已更改。

OK,数据文件从修改前的 1.4GB 变成了 600MB。对于其它的数据文件,大家也知道如何收缩了吧?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据库