标签:
一、Oracle表空间概述
表空间是Oracle数据库中的一种逻辑结构。从逻辑层面上来说,表空间包含段,数据库中的对象是以段的形式来组织的,诸如表段,索引段等;从物理层面上来说,表空间是由文件构成的,数据库中的数据实际上是存储在文件当中的。表空间不是Oracle数据库中的特有概念,如在DB2中也有表空间这个概念。
二、本地管理的表空间
1、本地管理表空间中的扩展(extent)管理
使用extent management local子句显示声明创建本地管理的表空间,对于新的永久表空间来说,这是一个默认的选项(基于数据字典管理的表空间已经过时)。同时,还可以指定扩展管理的方式,使用autoallocate子句表明将由数据库自动分配扩展,使用uniform子句表明将按照统一的大小分配扩展。
如果表空间内的对象对于扩展尺寸的要求是多种多样的,那么使用autoallocate选项是一个不错的选择。另外,由于autoallocate选项简化了对空间的管理,势必会造成一定的空间浪费。如果控制空间的分配和回收对你来说并不是那么重要,那么autoallocate也将是一个不错的选择。autoallocate带来的收益绝对超过其造成的损失。uniform选项可以明确的指出每一次为空间的申请分配多少扩展,如果表空间内的对象每次对空间的请求都是固定的,那么这个选项将会是一个不错的选择。在实际使用过程中,应根据表空间内的对象的具体情况作出抉择。
创建本地管理表空间的分区管理创建语句如下:
# 自动分配扩展 create tablespace lmt_tbs datafile ‘/u02/oracle/data/lmt_tbs.dbf‘ size 50m extent management local autoallocate; # 统一分配扩展 create tablespace uni_tbs datafile ‘/u02/oracle/data/uni_tbs.dbf‘ size 50m extent management local uniform size 128k;
2、本地管理表空间中的段(segment)管理
在本地管理的表空间中,Oracle使用两种方法管理段空间:自动和手动。手动段空间管理使用一个被称为”freelist“的队列来管理段内的空间,由pctused和pctfree两个参数用来控制空间的”入列“和”出列“,与之不同的是,自动段空间管理使用的是位图的管理方式,在自动段空间管理中,只需要设置pctfree参数。自动段空间管理是一种更为有效的空间管理方式。对于新的基于本地管理的表空间来说自动段空间管理是默认的。
自动段空间管理的创建语句如下:
create tablespace lmt_tbs datafile ‘/u02/oracle/data/lmt_tbs.dbf‘ size 50m extent management local autoallocate segment space management auto;
三、大文件表空间
一个小文件表空间最多能容纳1024个数据文件,在Oracle中可以创建大文件表空间,这样Oracle数据库使用的表空间就可以由一个单一的大文件构成,而不是若干个小数据文件。
1、使用大文件表空间的优势
2、使用大文件表空间时需要考虑的问题
3、创建大文件表空间的语句
CREATE BIGFILE TABLESPACE bigtbs DATAFILE ‘/u02/oracle/data/bigtbs01.dbf‘ SIZE 1024GB;
标签:
原文地址:http://www.cnblogs.com/magnes/p/5613464.html