· 表空间概述

  <1> 理解表空间

    ① 表空间与数据库的关系:

      表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一块空间,用于存放数据库的对象。 一个数据库可以由多个表空间构成。Oracle的很多优化都是通过表空间实现的。

    ② 表空间与数据文件的关系:

      表空间是由一个或多个数据文件构成的,数据文件的大小和位置可以由用户来决定。表和其他数据库对象都是存放在表空间的数据文件中的。       

  <2> 表空间的分类

    ① 永久表空间

      存储需要被永久化存储的数据库对象,比如表,视图,存储过程等

    ② 临时表空间

      存储数据库操作中中间执行的过程,执行完之后会被自动删除,不会被永久存储。

    ③ UNDO表空间

      存储事务修改的数据的旧值,也就是说被修改之前的数据。例如对一张表修改,会对修改前的信息进行保存,这样就可以进行事务的回滚。

 

· 查看用户的表空间

  <1> dba_tablespaces、user_tablespaces数据字典

     dba_tablespaces是系统管理员权限级别的用户进行查看的数据字典,usertablespaces是普通用户进行查看的数据字典。

    

     在系统管理员权限的用户下用 desc dba_tablespaces 查看 dba_tablespaces 的表结构

     (2)Oracle基础--表空间

 

     使用 SELECT tablespace_name FROM dba_tablespaces; 查看当前系统管理员用户下的表空间名称。

     (2)Oracle基础--表空间

 

     使用 SELECT tablespace_name FROM user_tablespaces; 查看当前普通用户下的表空间名称。

     (2)Oracle基础--表空间

  <2> dba_users、user_users 数据字典

     dba_users是系统管理员权限级别的用户进行查看的数据字典,user_users 是普通用户进行查看的数据字典

     使用 SELECT tablespace_name FROM dba_users; 查看数据库中所有用户的名称。

     使用 SELECT tablespace_name FROM user_users; 查看当前用户的名称。

  <3> 设置用户的默认/临时表空间

     ALTER USER username DEFAULT | TEMPORARY TABLESPACE tablespace_name;

     注意: 普通用户没有权限修改默认/临时表空间

· 创建、修改和删除表空间

  <1> 创建表空间

     创建永久表空间语法: CREATE TABLESPACE tablespace_name DATAFILE 'xxx.dbf' SIZExx;

     创建临时表空间语法: CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE 'xxx.dbf' SIZExx;

     查看表空间的文件路径可以使用:

      SELECT file_name FROM dba_data_files WHERE  tablespace_name = 'tablespace_name';

     注意: xxx.dbf为文件名,xx为文件大小。'

相关文章: