表空间 oracle 管理,Oracle表空间管理方式

在Oracle8I的版本中,Oracle推出了一种全新的表空间管理方式:本地化管理的表空间。

所谓本地化管理,就是指Oracle不再利用数据字典表来记录Oracle表空间里面的区的使用状况,而是在每个表空间的数据文件的头部加入了一个位图区,在其中记录每个区的使用状况。每当一个区被使用,或者被释放以供重新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。

本地化管理的表空间的创建过程:

语法:CREATE TABLESPACE 表空间名字

DATAFILE '数据文件详细信息'

[EXTENT MANAGEMENT { LOCAL

{AUTOALLOCATE | UNIFORM [SIZE INTETER [K|M] ] }

} ]

关键字EXTENT MANAGEMENT

LOCAL 指定这是一个本地化管理的表空间。对于系统表空间,只能在创建数据库的时候指定EXTENT MANGEMENT

LOCAL,因为它是数据库创建时建立的第一个表空间。

在8i中,字典管理还是默认的管理方式,当选择了LOCAL关键字,即表明这是一个本地管理的表空间。当然还可以继续选择更细的管理方式:是AUTOALLOCATE

还是

UNIFORM.。若为AUTOALLOCATE,则表明让Oracle来决定区块的使用办法;若选择了UNIFORM,则还可以详细指定每个区块的大小,若不加指定,则为每个区使用1M大小。

Oracle之所以推出了这种新的表空间管理方法,让我们来看一下这种表空间组织方法的优点:

1.

本地化管理的表空间避免了递归的空间管理操作。而这种情况在数据字典管理的表空间是经常出现的,当表空间里的区的使用状况发生改变时,数据字典的表的信息发生改变,从而同时也使用了在系统表空间里的回滚段。

2.

本地化管理的表空间避免了在数据字典相应表里面写入空闲空间、已使用空间的信息,从而减少了数据字典表的竞争,提高了空间管理的并发性

3.

区的本地化管理自动跟踪表空间里的空闲块,减少了手工合并自由空间的需要。

4.

表空间里的区的大小可以选择由Oracle系统来决定,或者由数据库管理员指定一个统一的大小,避免了字典表空间一直头疼的碎片问题。

5.

从由数据字典来管理空闲块改为由数据文件的头部记录来管理空闲块,这样避免产生回滚信息,不再使用系统表空间里的回滚段。因为由数据字典来管理的话,它会把相关信息记在数据字典的表里,从而产生回滚信息。

由于这种表空间的以上特性,所以它支持在一个表空间里边进行更多的并发操作,并减少了对数据字典的依赖。

Oracle本地管理对比数据字典管理表空间

Locally vs. Dictionary Managed Tablespaces

整理自:http://www.orafaq.com/node/3.

When Oracleallocates space to a segment (like a table or index),

a group of contiguousfree blocks, called an extent, is added to the

segment. Metadata regardingextent allocation and unallocated

extents are either stored in the datadictionary, or in the

tablespace itself. Tablespaces that record extentallocation in the

dictionary, are called dictionary managed tablespaces,

andtablespaces that record extent allocation in the tablespace

header, are calledlocally managed tablespaces.

表空间分配段空间,即区:一组连续的块。表空间关于区分配的信息被存于数据字典(DMT)或表空间自身(LMT)位图区

查看数据库中表空间管理方式:

SQL> select tablespace_name,extent_management,

allocation_type from dba_tablespaces;

TABLESPACE_NAME

EXTENT_MAN

ALLOCATIO

------------------------------ -------------------

SYSTEM

DICTIONARY

USER

SYS_UNDOTS

LOCAL

SYSTEM

TEMP

LOCAL

UNIFORM

DictionaryManaged Tablespaces (DMT):

Oracle use thedata dictionary (tables in the SYS schema) to

track allocated and free extentsfor tablespaces that is in

"dictionary managed" mode. Free space isrecorded in the SYS.FET$

table, and used space in the SYS.UET$ table. Wheneverspace is

required in one of these tablespaces, the ST (space

transaction)enqueue latch must be obtained to do inserts and

deletes agianst these tables.As only one process can acquire the ST

enque at a given time, this often leadto contention(竞争).

使用数据字典管理区分配。空闲空间被记录在SYS.FET$表中,已使用空间记录在SYS.UET$表。

Execute thefollowing statement to create a dictionary

managed

tablespace:

创建数据字典管理表空间:

SQL> CREATE TABLESPACE ts1

DATAFILE'/oradata/ts1_01.dbf' SIZE 50M

EXTENT MANAGEMENT DICTIONARY

DEFAULT STORAGE ( INITIAL 50K NEXT 50KMINEXTENTS 2 MAXEXTENTS 50

PCTINCREASE 0);

Locally ManagedTablespaces (LMT):

Using LMT, eachtablespace manages it's own free and used space

within a bitmap structurestored in one of the tablespace's data

files. Each bit corresponds to adatabase block or group of blocks.

Execute one of the following statements tocreate a locally

managed

tablespace:

注意:在Oracle920中,默认系统表空间是local管理,因此不能在数据库中建立数据字典管理的表空间。如果想要建立数据字典管理的表空间,必须在建立数据库时,将系统表空间改为数据字典管理才可以。

SQL> CREATE TABLESPACE ts2

DATAFILE'/oradata/ts2_01.dbf' SIZE 50M

EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

SQL> CREATE TABLESPACE ts3

DATAFILE'/oradata/ts3_01.dbf' SIZE 50M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

Note the differencebetween AUTOALLOCATE and UNIFORM SIZE:

注意AUTOALLOCATE与UNIFORM SIZE选项区别!

AUTOALLOCATEspecifies that extent sizes are system managed.

Oracle will choose"optimal" next extent sizes starting with 64KB.

As the segment growslarger extent sizes will increase to 1MB, 8MB,

and eventually to 64MB. This isthe recommended option for a low or

unmanaged environment.

UNIFORMspecifies that the tablespace is managed with uniform

extents of SIZE bytes(use K or M to specify the extent size in

kilobytes or megabytes). The defaultsize is 1M. The uniform extent

size of a locally managed tablespace cannot beoverridden when a

schema object, such as a table or an index, is created.

Also not, if youspecify, LOCAL, you cannot specify DEFAULT

STORAGE, MINIMUM EXTENT orTEMPORARY.

如果是本地管理表空间则不可以指定DEFAULT STORAGE与MINIMUM EXTENT或TEMPORARY选项。

Advantages ofLocally Managed Tablespaces: 本地管理优势:

Eliminates the need for recursive SQL operations against the

data dictionary (UET$ and FET$ tables)

消除对于数据字典表的递归SQL操作。

Reduce contention on data dictionary tables (single ST enqueue)

减少对数据字典表的争用。

Locally managed tablespaces eliminate the need to periodically

coalesce free space (automatically tracks adjacent free space)

不需要定期合并空闲空间。

Changes to the extent bitmaps do not generate rollback

information   对于位图区的改变不会产生回滚信息。

Locally ManagedSYSTEM Tablespace:

From Oracle9irelease 9.2 one can change the SYSTEM tablespace to

locally managed. Further, ifyou create a database with DBCA

(Database Configuration Assistant), it willhave a locally managed

SYSTEM tablespace by default. The following restrictionsapply:

No dictionary-managed tablespace in the database can be READ

WRITE.

You cannot create new dictionary managed tablespaces

You cannot convert any dictionary managed tablespaces to

local

Thus, it is bestonly to convert the SYSTEM tablespace to LMT

after

all other tablespaces are migrated to LMT.

自920后数据字典管理表空间已被废弃!

Segment SpaceManagement in LMT: 本地管理表空间中的段管理

From Oracle 9i,one can not only have bitmap managed tablespaces,

but also bitmap managedsegments when setting Segment Space

Management to AUTO for a tablespace. Lookat this

example:设置段自动管理

SQL> CREATE TABLESPACE ts4 DATAFILE

'/oradata/ts4_01.dbf'SIZE 50M

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

Segment SpaceManagement eliminates the need to specify and tune

the PCTUSED, FREELISTS, andFREELISTS GROUPS storage parameters for

schema objects. The Automatic SegmentSpace Management feature

improves the performance of concurrent DML operationssignificantly

since different parts of the bitmap can be used

simultaneouslyeliminating serialization for free space lookups

against the FREELSITS. This isof particular importance when using

RAC, or if "buffer busy waits"are deteted.

Convert betweenLMT and DMT:本地管理与数据字典管理表空间转换

TheDBMS_SPACE_ADMIN package allows DBAs to quickly and

easily

convert between LMT and DMT mode. Look at these examples:

SQL> exec

dbms_space_admin.Tablespace_Migrate_TO_Local('ts1');

PL/SQL procedure successfully completed.

SQL>

execdbms_space_admin.Tablespace_Migrate_FROM_Local('ts2');

PL/SQL procedure successfully completed.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值