第二十六课第八章Maintaining Tablespaces & Data Files

第八章Maintaining Tablespaces & Data Files

本章学习目标

1、了解表空间和数据文件的目的

2、创建表空间

3、管理表空间

4、使用OMF创建并管理表空间

5、获取表空间信息

Tablespaces & Data Files

Oracle数据逻辑上存储在表空间中,物理上存储在数据文件中

表空间同一时间只能属于一个数据库

表空间可以包含多个数据文件

表空间可以进一步分成多个逻辑存储单元

数据文件只能属于一个表空间和一个数据库

数据文件是一个用户对象数据的仓库

一个segment(表、索引等)由多个content组成,一个segment在一个表空间中可以跨多个data files

表空间类型

system tablespace

①数据库自行创建

②包含数据字典

③包含system undo段

non-system tablespace

①独立的段

②减少空间管理

③可以控制分配给用户的空间

也可以分为:permanent、undo、temporary表空间,永久表空间存储数据,undo表空间和temporary表空间存放临时数据

创建表空间

create tablespace userdata datafile ‘/u01/oradata/userdata01.dbf’ size 5M;

查询表空间中有哪些数据文件

select file_name,tablespace_name from dba_data_files;

表空间的空间管理方式

1、本地管理表空间

①表空间自行管理空闲的extents

②bitmap位图记录空闲的extents

③每个bit对应一个block或一组block

④bit数值代表extent是空闲的还是在使用

2、数据字典管理表空间

①空闲的extents由数据字典进行管理

②分配extents或者释放extents时,某些相关的表会自动更新

Oracle8.1.5之前Oracle管理extents都是数据字典进行管理,即dictionary-managed tablespace

就是说一个表空间的空间分配是由数据字典表进行管理的,类似于记账数据,需要存储在负债表debit和入账表credit中。在debit表中记录了所有已经分配出去的extents,在credit表中记录了所有未使用的空闲extents。当一个对象需要增加extent时,将向系统申请空间。Oracle会进入数据字典表中,执行一些查询语句,找到extent(也可能找不到),然后在数据字典credit表中将该extent的相关信息移除,同时在debit表中添加相应信息。

Oracle数据库在数据字典表中执行的相关查询语句就叫做recursive SQL。当用户执行insert语句就会引起recursive SQL。如果用户执行insert语句非常频繁,recursive SQL就会消耗大量的资源。而且recursive SQL语句更新数据字典是单线程的,无法并发执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值