表空间是什么

表空间是什么数据库篇 2007-09-19 21:16:45 阅读13 评论0   字号:大中小 订阅
表空间实质是组织数据文件的一种途径,Oracle就是通过表空间这个数据库对象完成对数据的组织的。在将数据插入Oracle数据库之前,必须首先建立表空间,然后将数据插入表空间的一个对象中。解释数据库、表空间、数据文件、表、数据文件的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。

根据表空间的用途可分为五类:

-目录表空间

每个数据库只有一个目录表空间,它是在发出 CREATE DATABASE 命令时创建的。目录表空间被 DB2 命名为 SYSCATSPACE,它保存了系统目录表。总是在创建数据库时创建该表空间。 (CAT:目录)

-常规表空间

常规表空间:保存表数据和索引。它还可以保存诸如大对象(Large Object,LOB)之类的长数据,除非这些数据显式地存储在长表空间中。如果某些表空间是数据库管理的空间(Database Managed Space,DMS),则可以将表及其索引分别放到单独的常规表空间中。我们将在本文后面定义 DMS 和系统管理的空间(System Managed Space,SMS)之间的区别。每个数据库中必须至少有一个常规表空间。创建数据库时指定该表空间的缺省名为 USERSPACE1。

-长表空间

长表空间:用于存储长型或 LOB 表列,它们必须驻留在 DMS 表空间中。它们还可以存储结构化类型的列或索引数据。如果没有定义长表空间,那么将把 LOB 存储在常规表空间中。长表空间是可选的,缺省情况下一个都不创建。

-系统临时表空间

系统临时表空间 :用于存储 SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。每个数据库必须至少有一个系统临时表空间。随数据库创建的系统临时表空间的缺省名为 TEMPSPACE1。

-用户临时表空间

用户临时表空间:存储已声明的全局临时表。创建数据库时不存在用户临时表空间。至少应当创建一个用户临时表空间以允许定义已声明的临时表。用户临时表空间是可选的,缺省情况下一个都不创建。

用户临时表空间用来存储:已说明全局临时表(已说明全局临时表:存储的是应用程序临时数据)。

   创建用户临时表空间的语法:

CODE:

CREATE USER TEMPORARY TABLESPACE usr_tbsp

    MANAGED BY DATABASE

    USING (FILE 'd:\db2data\user_tbsp' 5000,

                FILE 'e:\db2data\user_tbsp' 5000)

与常规表空间一样,用户临时表空间可以在除IBMTEMPGROUP之外的任何节点组中创建。创建用户临时表空间使用的默认节点组是IBMDEFAULTGROUP。DECLARE GLOBAL TEMPORARY TABLE语句定义供在用户临时表空间中使用的已说明临时表。

注:临时表空间存放一些oracle的临时数据   ( 我们用户不可以使用 )
   比如说  
  在sql中的order   by   ,distinct   等函数会使用临时表空间存放临时数

你可能感兴趣的:(oracle,sql,db2)