数据库(Database)由若干表空间(Tablespace)组成,表空间由若干段(Segment)组成,段(Segment)由若干区(Extend)组成,区(Extend)又是由oracle的最小单元块(Block)组成。
Extend是Oracle数据库分配空间的最小单位。
Segment对应着表(table)。
block size可以用来设置block的大小,在OLAP环境下可以设置的稍微大些,默认8k。uniform size可以用来设置enxtend的大小。
select sum(bytes)/1024/1024 from dab_free_space可以用来查看表空间剩余多少。
select sum(bytes)/1024/1024 from dba_data_files可以用来查看表空间总容量是多少。
select segment_name,extend_id,tablespace_nmae,bytes/1024/1024,blocks from user_extents where segments_name = ? 可以用来查看表的extends信息。
select file_name,tablespace_name,autoextensible,bytes from dba_data_files where tablespace_name = ? 可以用来查看表空间的信息。
一个典型的典型的创建tablespace的SQL语句:
create tablespace TBS_XXX
datafile 'path/to/datafile.dbf' size 1G --初始大小
autoextend on --表空间是否可以扩展,默认是off
uniform 1024k --extend的固定大小
maxsize 5G --表空间最大为5G
另外提供一个发现行迁移的方法。