数据库表空间概念介绍

Posted shawWey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库表空间概念介绍相关的知识,希望对你有一定的参考价值。

表空间概述

Oracle的表空间属于Oracle中的存储结构,是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最大逻辑单元,其下还包含有段、区、数据块等逻辑数据类型。表空间是在数据库中开辟的一个空间,用于存放数据库的对象,一个数据库可以由多个表空间组成。可以通过表空间来实现对Oracle的调优。(Oracle数据库独特的高级应用)

表空间的分类

永久表空间:存储数据库中需要永久化存储的对象,比如二维表、视图、存储过程、索引。

临时表空间:存储数据库的中间执行过程,如:保存order by数据库排序,分组时产生的临时数据。操作完成后存储的内容会被自动释放。临时表空间是通用的,所的用户都使用TEMP作为临时表空间。一般只有tmp一个临时表空间,如果还需要别的临时表空间时,可以自己创建。

UNDO表空间:保存数据修改前的副本。存储事务所修改的旧址,即被修改之前的数据。当我们对一张表中的数据进行修改的同时会对修改之前的信息进行保存,为了对数据执行回滚、恢复、撤销的操作。

查看system用户的默认表空间和临时表空间:

select DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username=\'SYSTEM\';

默认表空间

用户在登陆后创建数据库对象时,如果没有指定表空间,那么这些数据就会存储到默认表空间。

查看默认的永久表空间

注意:如果创建用户时,不指定其永久表空间,则会使用默认的表空间。

SELECT PROPERTY_NAME, PROPERTY_VALUE  FROM DATABASE_PROPERTIES;

查看默认的TEMP表空间

系统管理员:

SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME=\'DEFAULT_TEMP_TABLESPACE\';

普通用户:

SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS

查看默认的表空间类型

注意:如果不指定表空间类型,就会默认使用DEFAULT_TBS_TYPE参数指定的表空间类型。

SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME=\'DEFAULT_TBS_TYPE\';

逻辑结构到物理结构的映射

表空间与数据文件:表空间实际上是由若干个数据文件来构成的,数据文件的位置和大小可以由我们自己来决定。数据被存放在表空间中的数据文件中。

注意:表空间是一种逻辑数据结构,其下最小的数据块会映射到物理结构的磁盘块中,一个数据块由若干个磁盘块组成。  

 

或者由下图来理解:表空间逻辑上有若干个段组成,物理上由多个数据文件组成。 

  

对表空间的操作
表空间的操作方式:
字典管理:Oracle中的数据字典可以存储所有的表空间分配信息,但是如果数据库中所有的空间分配都放在数据字典中。容易引起字典争用,而导致性能问题,这是Oracle调优的方向之一。
本地管理:表空间分配不放在数据字典,而在每个数据文件头部的第3到第8个块的位图块,来管理空间分配。

 

 

 

以上是关于数据库表空间概念介绍的主要内容,如果未能解决你的问题,请参考以下文章

浅谈mysql中各种表空间(tablespaces)的概念

1.0 机器学习概念介绍

ORACLE回收站机制介绍

MySQL共享表空间概念

[Oracle]undo表空间使用量为100%

Oracle 表空间的概念