表空间的概念
程序员文章站
2024-03-09 11:47:59
...
一、什么是表空间
表空间是一个逻辑概念,它统一管理空间中的数据文件。一个数据库可以有多个表空间,但一个表空间只能属于一个数据库,一个表空间可以有多个数据库文件,但一个数据文件只能属于一个表空间。
通俗来讲,数据库(房间外壳),表空间(房间里面的空间),数据库文件(空间中的箱子),表(箱子里的东西)。因为主要存放的是表,所以叫表空间。
用户指定表空间也就是你希望把这个用户的表放在哪个表空间里面。
二、表空间的分类
- 永久性表空间,如system,users,一般保存表、视图、过程和索引等数据
- 临时性表空间,如TEMP,只用于保存系统中短期活动的数据,当你提交之后(commit),数据就会从临时表空间迁移到永久性表空间去,同时临时表空间将被清空.
- 撤销表空间,如UNDO,用于帮助用户回退未提交的事务数据
注意:
- 一般不需要建立临时和撤销表空间,除非要把它们转移到其他磁盘中以提高性能。
- 基于应用性能和管理方面的考虑,最好为不同的子系统创建独立的表空间,一个表空间对应一个信息系统。
三、创建表空间
CREATE TABLESPACE bank_TABLESPACE
LOGGING --日志
DATAFILE 'D:\DevelopmentTool\oracle\oradata\orcl\bank_TABLESPACE.dbf'
SIZE 100M --初始大小
AUTOEXTEND ON --是否自动扩大
NEXT 32M --每次扩大32MB
MAXSIZE UNLIMITED --可以无限大
EXTENT MANAGEMENT LOCAL;
四、修改表空间
- 修改表空间的大小
ALTER DATABASE DATAFILE
'D:\DevelopmentTool\oracle\oradata\orcl\bank_TABLESPACE.dbf'--这是你表空间的路径
RESIZE 80M;
五、删除表空间
--删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
--删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
例:DROP TABLESPACE bank_TABLESPACE INCLUDING CONTENTS;
--删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;