表空间、数据文件、剩余空间的大小

查看表空间的大小,其实就是查看数据文件的大小,在这里,表空间LXTBS有两个数据文件,非自动扩展,共25M。

SQL> select tablespace_name,bytes/1024/1024 "M",autoextensible from dba_data_files;

   

TABLESPACE_NAME M AUTOEX

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

USERS 10 NO

UNDOTBS1 95 YES

SYSAUX 630 YES

SYSTEM 830 YES

EXAMPLE 100 YES

LXTBS 15 NO

LXTBS 10 NO

   

已选择7行。

   

SQL>

查看表空间的使用情况:

SQL> select sum(bytes)/1024/1024 "M",sum(blocks*8/1024) "M" from dba_extents where tablespace_name='LXTBS';

   

M M

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

19 19

   

SQL>

可以看到表空间已经使用19M

   

查看表空间的剩余空间:

SQL> select tablespace_name,bytes/1024/1024 from dba_free_space where tablespace_name='LXTBS';

   

TABLESPACE_NAME BYTES/1024/1024

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

LXTBS 4

   

SQL>

数据占用19M,空闲空间还有4M,还有2M 用于表空间自身,共25M

   

SQL> alter database datafile 7 resize 15m;

   

数据库已更改。

   

更改后共30M空间

SQL> select tablespace_name,bytes/1024/1024 "M",autoextensible from dba_data_files;

   

TABLESPACE_NAME M AUTOEX

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

USERS 10 NO

UNDOTBS1 95 YES

SYSAUX 630 YES

SYSTEM 830 YES

EXAMPLE 100 YES

LXTBS 15 NO

LXTBS 15 NO

   

已选择7行。

   

SQL>

占用19M

SQL> select sum(bytes)/1024/1024 "M",sum(blocks*8/1024) "M" from dba_extents where tablespace_name='LXTBS';

   

M M

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

19 19

   

SQL>

空间9M,其余2M用于表空间自身

SQL> select tablespace_name,file_id,bytes/1024/1024 from dba_free_space where tablespace_name='LXTBS';

   

TABLESPACE_NAME FILE_ID BYTES/1024/1024

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

LXTBS 7 5

LXTBS 6 4

   

SQL>

查看表的空间使用情况

SQL> select blocks,empty_blocks from dba_tables where tablespace_name='LXTBS';

   

BLOCKS EMPTY_BLOCKS

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

2286 146

   

SQL>

给对象提前分配空间:

SQL> alter table t allocate extent(size 1m datafile 'd:\u01\app\oracle\oradata\prod\lxtbs01.dbf');

   

表已更改。

   

SQL>

   

SQL> select sum(bytes)/1024/1024 "M",sum(blocks*8/1024) "M" from dba_extents where tablespace_name='LXTBS';

   

M M

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

20 20

   

SQL> select tablespace_name,file_id,bytes/1024/1024 from dba_free_space where tablespace_name='LXTBS';

   

TABLESPACE_NAME FILE_ID BYTES/1024/1024

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

LXTBS 7 5

LXTBS 6 3

SQL> ANALYZE TABLE t COMPUTE STATISTICS;

   

表已分析。

SQL> select blocks,empty_blocks from dba_tables where table_name='T';

   

BLOCKS EMPTY_BLOCKS

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

2286 274

   

SQL>

   

posted @ 2013-02-19 16:59  -Bill  阅读(476)  评论(0编辑  收藏  举报