表空间、数据文件、剩余空间的大小
查看表空间的大小,其实就是查看数据文件的大小,在这里,表空间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>