CREATE TABLESPACE "T" DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\T.DBF' SIZE 5M
默认的话是不自动扩展的:
SQL>select file_id, tablespace_name,autoextensible, increment_by
2 from dba_data_files where tablespace_name='T'
FILE_ID TABLESPACE_NAMEAUT INCREMENT_BY
---------- ------------------------------ --- ------------
8 T NO 0
2,如果插入的数据超过5M,会出错
SQL> create table largeinsert tablespace t as select * from dba_objects
create table largeinsert tablespace t as select * from dba_objects*
ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace T
3,将表空间修改为自动扩展:
SQL>alter database datafile 8 autoextend on
Database altered.
SQL>select file_id, tablespace_name,autoextensible, increment_by
在 Oracle 数据库中,一个表空间(tablespace)是由一个或多个数据文件(datafile)组成的逻辑存储单元,用于存储数据库对象,如表、索引、存储过程等。当一个表空间中的数据文件没有足够的空间来存储新的数据时,Oracle 会自动扩展这个表空间,以便继续存储数据。这个扩展过程称为“表空间的自动扩展”。
在 Oracle 中,表空间的自动扩展有两种方式:一种是增加数据文件,另一种是使用 EXTENTS。EXTENTS 是一种逻辑数据结构,是用来描述表空间中的空闲空间的。当表空间需要扩展时,Oracle 会从 EXTENTS 中获取空闲空间,用来存储新的数据。
一个 EXTENT 是由若干个连续的数据块组成,可以存储一个或多个数据库对象。EXTENTS 在表空间中形成一个链,每个 EXTENT 都指向下一个 EXTENT,形成一个链式结构,用于存储数据。当一个数据库对象需要扩展时,Oracle 会根据这个对象的大小,分配一个或多个新的 EXTENT,并将这些 EXTENT 插入到表空间的链中,用于存储新的数据。
因此,EXTENTS 是 Oracle 中表空间自动扩展的一种方式,用于描述表空间中的空闲空间,以便存储新的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)