Oracle 表空间的概念

回眸只為那壹抹淺笑 提交于 2019-11-30 09:30:59

Oracle 表空间的概念

表空间

 

在数据库系统中,存储空间是较为重要的资源,合理利用空间,不但能节省空间,还可以提高系统的效率和工作性能。 Oracle 可以存放海量数据,所有数据都在数据文件中存储。而数据文件大小受操作系统限制,并且过大的数据文件对数据的存取性能影响非常大。同时Oracle 是跨平台的数据库, Oracle 数据可以轻松的在不同平台上移植,那么如何才能提供统一存取格式的大容量呢? Oracle 采用表空间来解决。
表空间只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间。一个数据库空间由若干个表空间组成。如图所示:

 

 

Oracle 中所有的数据(包括系统数据),全部保存在表空间中,常见的表空间有:

Ø系统表空间:存放系统数据,系统表空间在数据库创建时创建。表空间名称为
SYSTEM。存放数据字典视图以及数据库结构等重要系统数据信息,在运行时如
果 SYSTEM 空间不足,对数据库影响会比较大,虽然在系统运行过程中可以通过命
令扩充空间,但还是会影响数据库的性能,因此有必要在创建数据库时适当的把数
据文件设置大一些。
ØTMEP 表空间:临时表空间,安装数据库时创建,可以在运行时通过命令增大临时
表空间。临时表空间的重要作用是数据排序。比如当用户执行了诸如 Order by 等
命令后,服务器需要对所选取数据进行排序,如果数据很大,内存的排序区可能装
不下太大数据,就需要把一些中间的排序结果写在硬盘的临时表空间中。
Ø用户表自定义空间:用户可以通过 CREATE TABLESPACE 命令创建表空间

 

创建表空间

 

--创建表空间 linux centos6.9

--创建一个表空间,包含两个数据文件大小分别是 10MB, 5MB,要求 extent 的大小统一为 1M

CREATE TABLESPACE nod_tablespace

DATAFILE '/home/oracle/tablespace/A.ORA' SIZE 10M,

'/home/oracle/tablespace/B.ORA' SIZE 5M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 1M

 

 

windows版本创建表空间

请注意:只有管理员才可以增加表空间

当表空间不足的时候可以用alter tablespace命令向表空间中追加数据文件并扩充表空间

修改表空间大小

--扩充表空间

 

 

ALTER TABLESPACE nod_tablespace

ADD DATAFILE '/home/oracle/tablespace/C.ORA' SIZE 100M

 

--查看表空间情况

SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name

FROM dba_free_space

GROUP BY tablespace_name;

 

创建用户时可以为用户指定某一表空间,那么该用户下所有数据库对象默认都存储在该空间中

指定用户的表空间为

create user nod identified by nod default tablespace nod_tablespace;

 

创建表指定表空间

create table t2(id int)

tablespace nod_tablespace

 

 

表和索引一旦创建,表空间无法进行二次修改

表空间

 

在数据库系统中,存储空间是较为重要的资源,合理利用空间,不但能节省空间,还可以提高系统的效率和工作性能。 Oracle 可以存放海量数据,所有数据都在数据文件中存储。而数据文件大小受操作系统限制,并且过大的数据文件对数据的存取性能影响非常大。同时Oracle 是跨平台的数据库, Oracle 数据可以轻松的在不同平台上移植,那么如何才能提供统一存取格式的大容量呢? Oracle 采用表空间来解决。
表空间只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间。一个数据库空间由若干个表空间组成。如图所示:

 

 

Oracle 中所有的数据(包括系统数据),全部保存在表空间中,常见的表空间有:

Ø系统表空间:存放系统数据,系统表空间在数据库创建时创建。表空间名称为
SYSTEM。存放数据字典视图以及数据库结构等重要系统数据信息,在运行时如
果 SYSTEM 空间不足,对数据库影响会比较大,虽然在系统运行过程中可以通过命
令扩充空间,但还是会影响数据库的性能,因此有必要在创建数据库时适当的把数
据文件设置大一些。
ØTMEP 表空间:临时表空间,安装数据库时创建,可以在运行时通过命令增大临时
表空间。临时表空间的重要作用是数据排序。比如当用户执行了诸如 Order by 等
命令后,服务器需要对所选取数据进行排序,如果数据很大,内存的排序区可能装
不下太大数据,就需要把一些中间的排序结果写在硬盘的临时表空间中。
Ø用户表自定义空间:用户可以通过 CREATE TABLESPACE 命令创建表空间

 

创建表空间

 

--创建表空间 linux centos6.9

--创建一个表空间,包含两个数据文件大小分别是 10MB, 5MB,要求 extent 的大小统一为 1M

CREATE TABLESPACE nod_tablespace

DATAFILE '/home/oracle/tablespace/A.ORA' SIZE 10M,

'/home/oracle/tablespace/B.ORA' SIZE 5M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 1M

 

 

windows版本创建表空间

请注意:只有管理员才可以增加表空间

当表空间不足的时候可以用alter tablespace命令向表空间中追加数据文件并扩充表空间

修改表空间大小

--扩充表空间

 

 

ALTER TABLESPACE nod_tablespace

ADD DATAFILE '/home/oracle/tablespace/C.ORA' SIZE 100M

 

--查看表空间情况

SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name

FROM dba_free_space

GROUP BY tablespace_name;

 

创建用户时可以为用户指定某一表空间,那么该用户下所有数据库对象默认都存储在该空间中

指定用户的表空间为

create user nod identified by nod default tablespace nod_tablespace;

 

创建表指定表空间

create table t2(id int)

tablespace nod_tablespace

 

 

表和索引一旦创建,表空间无法进行二次修改

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!