oracle 手动分配extent_Oracle数据库中extentmanagement管理

在oracle数据库中:extent management 有两种方式 extent management local(本地管理); extent management dictionary(数据字

extent是“区间”的意思

在Oracle数据库中:extent management 有两种方式 extent management local(本地管理); extent management dictionary(数据字典管理)

默认的是local

每种也有两种大小增长方式:

uniform:默认为1M大小,在temp表空间里为默认的,但是不能被应用在undo表空间

本地管理表空间与字典管理表空间相比大大提高了管理效率和数据库性能,其优点如下:

1.减少了递归空间管理

本地管理表空间是自己管理分配,而不是象字典管理表空间需要系统来管理空间分配,本地表空间是通过在表空间的每个数据文件中维持一个位图来跟踪在此文件中块的剩余空间及使用情况。并及时做更新。这种更新只对表空间的额度情况做修改而不对其他数据字典表做任何update操作,所以不会产生任何回退信息,从而大大减少了空间管理,,提高了管理效率。同时由于本地管理表空间可以采用统一大小分配方式(UNIFORM),因此也大大减小了空间管理,提高了数据库性能。

2.系统自动管理extents大小或采用统一extents大小

本地管理表空间有自动分配(AUTOALLOCATE)和统一大小分配(UNIFORM)两种空间分配方式,自动分配方式(AUTOALLOCATE)是由系统来自动决定extents大小,而统一大小分配(UNIFORM)则是由用户指定extents大小。这两种分配方式都提高了空间管理效率。

3.减少了数据字典之间的竞争

因为本地管理表空间通过维持每个数据文件的一个位图来跟踪在此文件中块的空间情况并做更新,这种更新只修改表空间的额度情况,而不涉及到其他数据字典表,从而大大减少了数据字典表之间的竞争,提高了数据库性能。

4.不产生回退信息

因为本地管理表空间的空间管理除对表空间的额度情况做更新之外不修改其它任何数据字典表,因此不产生回退信息,从而大大提高了数据库的运行速度。

5.不需合并相邻的剩余空间

因为本地管理表空间的extents空间管理会自动跟踪相邻的剩余空间并由系统自动管理,因而不需要去合并相邻的剩余空间。同时,本地管理表空间的所有extents还可以具有相同的大小,从而也减少了空间碎片。

6.减少了空间碎片

7.对临时表空间提供了更好的管理

autoallocate:

You can convert a tablespace from dictionary extent management to local extent management

and back with the Oracle-supplied PL/SQL package DBMS_SPACE_ADMIN. The SYSTEM

tablespace and any temporary tablespaces, however, cannot be converted from local to the

older style dictionary managem

两种extent管理方式是可以相互转换的,利用PL/SQL DBMS_SPACE_ADMIN

但是系统表空间和临时表空间不能从local管理转化到dictionary管理。

logo.gif

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库EXTENT MANAGEMENT是指管理数据文件extent数据库存储的基本单位)的方式。它决定了如何为表空间分配管理extent。通常有两种类型的extent managementLOCAL和DICTIONARY。 LOCAL extent management是一种新的管理方式,它在每个表空间分配管理extent。这种管理方式提供了更好的性能和可扩展性,并且允许更高效的数据分片和管理。使用LOCAL extent management的表空间可以通过AUTOALLOCATE选项自动分配新的extent,并根据需要自动调整表空间的大小。 DICTIONARY extent management是一种传统的管理方式,它使用数据字典来跟踪和管理extent。在DICTIONARY extent management下,所有表空间共享一个公共的extent列表。当需要为表空间分配新的extent时,数据库会在共享的extent列表查找可用的extent。这种管理方式相对来说较为简单,但可能会导致性能问题,特别是在大型数据库。 针对EXTENT MANAGEMENT的操作,可以通过SQL语句进行,比如创建表空间时可以使用CREATE TABLESPACE语句,并指定EXTENT MANAGEMENT的类型和其他参数。例如,使用LOCAL extent management创建表空间的语句如下:CREATE TABLESPACE TEST DATAFILE 'D:\OracleData\test\test.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL AUTOALLOCATE。而修改表空间的大小可以使用ALTER DATABASE语句,并指定需要修改的数据文件和新的大小。例如,修改表空间大小为5M的语句如下:ALTER DATABASE DATAFILE 'D:\OracleData\test\test.dbf' RESIZE 5M。 总结起来,Oracle EXTENT MANAGEMENT是指管理数据库extent的方式,可以通过创建表空间时指定EXTENT MANAGEMENT类型以及使用SQL语句进行相关操作。LOCAL和DICTIONARY是常见的EXTENT MANAGEMENT类型,LOCAL提供了更好的性能和可扩展性,而DICTIONARY则较为简单但可能导致性能问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值