`
squall140
  • 浏览: 146222 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

表空间的概念和使用

 
阅读更多

 

概念:表空间实质是组织数据文件的一种途径,Oracle就是通过表空间这个数据库对象完成对数据的组织的。在将数据插入Oracle数据库之前,必须首先建立表空间,然后将数据插入表空间的一个对象中。

解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。

目的和意义:方便管理,就像每个城市会划分成很多区,每个区又有很多街道一样

目的和意义具体体现在他的用途上:

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

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

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

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

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

 

 

 

 理解大致可以这样来简单看待Oracle的组成层次:

    数据库--表空间--某一个用户的表集--一张表--行、列……,对表的引用和授权,常是以用户为单位的。当然,实质上表空间是物理概念,而用户表是数据库中的对象,只是存于某一个表空间下的一块空间中。

表空间、段、区间和数据库对象

    Oracle数据库的物理存储结构由数据文件组成,但在逻辑上,Oracle将数据库所有数据文件占用的磁盘空间划分为一个或多个表空间进行存储管理。一个表空间可包含多个数据文件,但一个数据文件只能属于一个表空间。

    Oracle的逻辑存储结构大致有以下几个层次:表空间--段--区间--数据块。平常用到的主要是表空间、段和区间,段有数据段、索引段、临时段和回滚段几种。Oracle对象中的表,索引等便是存储在这不同的段里面。而一张数据库表,只属于数据段,但它可能跨越多个区间(Extent),因为区间包括固定的若干个数据块大小,一个区间未必放得下一张表,划分区间只是为了空间分配与回收的方便。

新增用户及其授权

    在Oracle数据库中新加入一个用户时,主要有以下几步:

    一、新建表空间(如新用户的默认表空间使用现有的表空间如USERS表空间,则不需要新建)。创建表空间时,需要指定数据文件等一些表空间的参数。

    二、新建用户。刚新建的用户可以没有指定任何权限属性,也可以指定其默认表空间等。

    三、用户授权。指定用户的默认表空间、将create session(连接数据库)、create table、select talbe等权限授予用户。这样用户便可以在自己默认表空间下进行各种操作了。如果需要将其它用户的表权限授予新用户,也可在此时完成。

    四、分配空间限额。一定要有这一步,否则将无法进行创建表的操作。分配每个用户在某个表空间的空间限额,是为了使用户对空间的利用更加合理。

    五、用户可进行操作了。

    下面是在网上找的一段实例:

  1. 1.建表空间    
  2. create tablespace OSDB datafile 'F:\Oracle\oradata\glsqjz\OSDB.ora' size 100m reuse default storage(initial 500k next 500k pctincrease 20);    
  3. 2.建用户    
  4. create user OSUSER identified by OSUSER;//identified by 后面的是密码,前面的是用户名    
  5. 3.用户授权    
  6. grant resource,connect,RECOVERY_CATALOG_OWNER to OSUSER ;    
  7. grant create table to OSUSER ;    
  8. alter user OSUSER quota unlimited ON OSDB;    
  9. alter user OSUSEdefault tablespace OSDB;    
  10. 4.删除表空间    
  11. DROP TABLESPACE TableSpaceName INCLUDING CONTENTS AND DATAFILES;    
  12. 5.删除用户    
  13. DROP USER User_Name CASCADE    
  14. 6.删除表的注意事项    
  15. 在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。  
分享到:
评论

相关推荐

    powerdesigner为表设置表空间

    #### 二、表空间概念解析 **表空间**是 Oracle 数据库中的一种逻辑存储单元,用来组织和管理物理存储空间。每一个表空间都包含一个或多个数据文件(Datafile),这些数据文件存储在操作系统的文件系统中。表空间可以...

    Oracle用户(user)和表空间(tablespace).pdf

    总的来说,Oracle 用户和表空间是数据库管理的基础,掌握它们的使用和管理方法对于任何 Oracle 数据库管理员来说都至关重要。通过本文的详细讲解和实例演示,初学者能够逐步建立起对 Oracle 用户和表空间的全面认识...

    db2表空间不足及处理

    DB2表空间可以分为系统管理的表空间和用户管理的表空间两种。系统管理的表空间是由DB2数据库自动创建的,用于存储系统数据,而用户管理的表空间是由用户创建的,用于存储用户数据。 在DB2数据库中,表空间不足可能...

    DB2表和表空间状态详解

    总之,本文详细介绍了DB2表和表空间状态的概念、意义以及应用场景,旨在帮助读者深入理解DB2的高级特性,提升数据库运维和管理能力。通过合理运用状态管理,不仅能够优化数据库性能,还能增强数据的完整性和安全性。

    获取oracle表空间脚本

    #### Oracle表空间概念 在Oracle数据库中,表空间是存储空间的逻辑划分。每个表空间由一个或多个数据文件组成,并且可以包含一个或多个段(如表、索引等)。表空间用于管理数据文件的增长和收缩,并为数据库中的...

    oracle表空间详解

    Oracle 表空间详解 Oracle 表空间是 Oracle 数据库中一个...使用表空间可以帮助我们更好地管理数据库的存储空间,提高数据库的性能和工作效率。同时,也可以帮助我们更好地组织和管理数据,提高数据的安全性和可靠性。

    从一个表空间 另一个表空间

    ### 一、理解Oracle表空间的概念 在Oracle数据库中,表空间是由一个或多个数据文件组成的逻辑存储单元。它用于组织和管理数据库中的数据。每个表空间可以包含多个表、索引等数据库对象。在Oracle中,默认情况下,...

    表空间暴长后如何才能取消自动扩展

    - 表空间是Oracle数据库中用于组织和存储数据的基本单位之一。 - 当表空间设置为自动扩展时,它会在需要时自动增加其大小,通常通过调整数据文件(datafile)的大小来实现这一目标。 2. **自动扩展参数**: - 在...

    oracle 表空间创建

    "Oracle 表空间创建" Oracle 表空间创建是 Oracle 数据库中的一种基本...在本节中,我们讨论了 Oracle 表空间创建的基本概念和步骤,并提供了相关的 SQL 语句,以便于读者更好地理解和应用 Oracle 表空间创建技术。

    达梦数据库表空间管理

    - **一个数据文件仅归属于一个表空间**:这表示数据文件不能跨表空间使用,即一个数据文件只能属于一个特定的表空间。 #### 二、表空间规划 表空间规划是在数据库设计初期进行的重要步骤之一,合理的规划能够提高...

    数据库表空间的深入理解

    数据库表空间是数据库管理系统(DBMS)中的一个重要概念,它是一种物理存储结构,用于组织和管理数据库中的数据。深入理解数据库表空间对于优化数据库性能、规划存储资源以及确保数据的安全性和完整性至关重要。以下...

    DB2的表空间和缓冲池

    DMS表空间支持通过`ALTERTABLESPACE`命令动态调整容器大小,并且可以从V8版本开始释放未使用的容器空间。 #### 三、创建和查看表空间 在DB2中创建数据库时,会自动创建三个表空间:`SYSCATSPACE`、`TEMPSPACE1`和`...

    表空间和数据文件的管理

    【表空间和数据文件的管理】是数据库管理系统中的核心概念,尤其在Oracle数据库中尤为重要。本文将深入探讨这两个概念以及如何进行相关操作。 首先,**表空间(Tablespace)**是数据库的逻辑组织单位,它从逻辑上...

    oracle-临时表空间

    ### Oracle 临时表空间详解 ...总结而言,通过上述内容我们可以了解到Oracle数据库中临时表空间的基本概念、查询方法以及如何进行创建、修改和删除等操作。掌握这些知识点有助于更好地管理和优化数据库性能。

    线性表和链表的定义和使用

    线性表和链表的定义和使用 线性表是一种典型的线性结构,它是一种有限序列, 由 n(n≥0)个数据元素(结点)a1,a2,…an 组成。线性表可以分为顺序表和链表两种实现方式。顺序表是使用顺序存储方法存储的线性表,...

    \Oracle 表空间与数据文件

    通过以上内容,我们详细了解了Oracle中的表空间与数据文件的概念、分类以及它们在Oracle数据库存储结构中的作用,并学习了如何通过SQL查询来查看和管理这些表空间和数据文件。这对于管理和优化Oracle数据库的性能至...

    四川大学计算机学院-数据结构与算法分析高分实验报告-引用数使用空间表法广义表存储结构.rar

    本实验报告集中于一个特定的主题——引用数的使用,结合空间表法和广义表的存储结构,这些都是在高级编程和系统设计中至关重要的概念。 首先,让我们详细探讨“引用数”。在计算机科学中,引用数(或称为计数器)...

    Oracle数据库创建表空间和用户.doc

    以下将详细解析如何在Oracle数据库中创建表空间和用户,以及这一过程中涉及的关键概念和步骤。 ### 创建表空间 #### 1. 访问Oracle数据库管理界面 首先,通过提供的地址(如`localhost:5500/em`)访问Oracle...

Global site tag (gtag.js) - Google Analytics