转载:作者:alix_an@sohu.com
在oracle8i 以前,Oracle使用字典管理表空间(DICTIONARY MANAGED TABLESPACE),对于使用数据字典来管理表空间,每当分配或回收时,Oracle服务器将更新数据字典中的相应的表,这就是表空间缺省的空间管理方法。对于Oracle8.0版和更早版本内这是唯一可用的方法。
从Oracle8i开始,Oracle提供了一种新的表空间的管理方式,即本地管理表空间LMT(Local Managed Tabalespace)。使用LMT,Oracle通过在每个数据文件内都维护一个位图以了解该数据文件内快的空闲或使用状态,位图内的每一位对应一个块或一组块在分配区或者释放去,以供再次使用时Oracle服务器更改位图数值以显示块的新状态。
使用本地管理表空间很少形成表空间碎片,因此该空间中的对象很少与表空间有关的问题。另外需要注意的是,无论使用Oracle8i数据库还是Oracle9i数据库,都不能在创建数据库的时候将SYSEM表空间创建为本地表空间管理,并且也永远不能将SYSTEM表空间转换成本地管理表空间(LMT)。
创建本地管理表空间的一些选项:
在Oracle9i数据库中,本地管理表空间(LMT)是默认的空间管理方式。要想创建本地管理表空间(LMT),只需要在CREATE TABLESPACE 语句的EXTENT MANAGEMENT 子句中指定LOCAL子句。创建LMT时,你可以选择使用AUTOALLOCATE选项来使用Oracle自动管理盘区,或者可以使用一个指定大小(UNIFORM SIZE子句)的统一盘区来管理该表空间。如果省略UNIFORM SIZE选项,则默认选项是AUTOALLOCATE.则默认选项是AUTOALLOCATE.
具体语法如下:
在Create Tablespace 语句的 EXTENT MANAGEMENT 子句的LOCAL选项指定表空间是本地管理的:
extent_management_clause :==[
EXTENT_MANAGEMENT {
DICTIONARY|LOCAL
{
AUTOALLOCATE | UNIFORM[SIZE INTEGER[K|M]
}
}
]
其中 DICTIONARY指定使用字典表来管理表空间 这是缺省方法
1.LOCAL:指定通过位图来本地管理表空间(
如果指定了LOCAL 则无法指定DEFAULT storage_clause MINIMUM EXTENT或者TEMPORARY)
2.AUTOALLOCATE 指定表空间由系统管理,用户无法指定区大小
3.UNIFORM 指定通过大小为SIZE字节统一区来管理表空间,使用K或M以千字节为单位来指定区大小。
4.SIZE缺省为1兆字节
EXTENT MANAGEMENT 子句可用于各种CREATE 命令中,对于非SYSTEM的永久表空间可以在CREATE TABLESPACE 命令中指定 EXTENT MANAGEMENT LOCAL;对于临时表空间可以在CREATE TEMPORARY TABLESAPCE 命令中指定 EXTENT MANAGEMENT LOCAL
何时使用Oracle自动管理磁盘(AUTOALLOCATE 选项)
如果表空间中的EXTENT 的尺寸是不一定的,急需要不同的盘区大小和拥有很多盘区的大小变动的对象,这时使用AUTOALLOCATE是比较合理的选择。虽然有可能浪费了一些空间,但是由Oracle来管理表空间的使用(空间分配和回收的工作),简化了用户空间的管理。
例如:
SQL> CREATE TABLESPACE LMTTEST 2 DATAFILE 'D:\LMTTEST.dbf' SIZE 5M 3 EXTENT MANAGEMENT LOCAL 4 AUTOALLOCATE;表空间已创建。SQL>
何时使用统一盘区来管理表空间(即,使用UNIFORM SIZE字句)?
如果想要准确控制未用的空间,并且能够精确地预计为一个或更多对象要分配的空间和盘区的数目、大小等,那么使用UNIFORM 选项更合适,因为它确保在表空间中永远不会有一定数量的未用空间。UNIFORM SIZE的默认大小是1MB,此时,使用此方式创建数据文件时,数据文件的大小至少为1MB(位图空间加上一个块)。
例如,假设表空间块大小为4KB,统一盘区的大小为256K,那么位图中的每一位描述64个块(256/4):
SQL> CREATE TABLESPACE LMTTEST 2 DATAFILE 'D:\LMTTEST.dbf' SIZE 10M 3 EXTENT MANAGEMENT LOCAL 4 UNIFORM SIZE 256K;表空间已创建。SQL>
分享到:
相关推荐
本文将深入探讨 Oracle 数据库中的本地管理表空间(Locally Managed Tablespace,简称 LMT)的概念、优势及其内部工作原理。LMT 是 Oracle 提供的一种高级表空间管理方式,它在数据文件级别管理存储空间,通过位图...
然而,从Oracle 8i开始,引入了本地管理表空间(Local Managed Tablespace,简称LMT),以提供更高效、更自动化的空间管理机制。 **本地管理表空间(LMT)的优势** 1. **性能提升**:LMT使用位图来跟踪数据文件中...
1. 数据文件必须是ONLINE状态才能执行此命令,如果文件已经OFFLINE,只有在字典管理表空间(DMT)中才能执行,对本地管理表空间(LMT)则不行。 2. 不能删除表空间的第一个数据文件或唯一的数据文件,否则会引发错误...
表空间的空间管理有两种方式:本地管理表空间(Local Managed Tablespaces, LMT)和数据字典管理表空间(Dictionary Managed Tablespaces, DMT)。LMT使用位图记录表空间内的空闲区域,减少了数据字典的竞争,分配或...
例如,创建名为USER01的本地管理表空间,可以使用如下命令: ```sql CREATE TABLESPACE USER01 DATAFILE 'd:\oracle\oradata\db01\userdata01.dbf' SIZE 5M EXTENT MANAGEMENT LOCAL AUTOALLOCATE UNIFORM SIZE 128...
本地管理表空间(Locally Managed Tablespace, LMT)是Oracle 8i引入的新机制,用以提高管理效率。LMT不再依赖数据字典,而是通过数据文件头部的位图记录区的使用情况,减少对系统资源的占用,提高性能。 17.3 表...
表空间的空间管理有两种方式:本地管理表空间(Local Managed Tablespace, LMT)和字典管理表空间。在LMT中,Oracle使用位图来跟踪空闲空间,提高了空间利用率。而字典管理表空间则依赖于数据字典来维护空闲区信息。...
在实际操作中,管理员需要根据数据库的规模、性能需求和安全性要求,合理规划和管理表空间,包括创建、扩展、移动和删除表空间,以及调整表空间的大小和状态,确保数据库高效、稳定运行。同时,定期监控和优化表空间...
管理表空间的原则强调了数据的合理分布,例如通过多重表空间将用户数据与系统数据隔离,提高性能,以及将不同表空间的数据文件分布在不同的物理磁盘上,以实现负载均衡和提高I/O效率。 在实际应用中,了解并掌握...
Oracle数据库的基础知识主要涵盖如何管理和应用表空间以及与之关联的文件。表空间在Oracle数据库中扮演着核心角色,它是数据库逻辑结构的最大单位,物理上对应于磁盘上的数据文件。这一章主要讨论了以下几个方面: ...
9.7 在OEM(Oracle企业管理器)中管理表空间 OEM提供了图形化界面,方便管理员进行表空间的创建、修改、删除和查询等操作,提高了数据库管理的便捷性和效率。 总结来说,Oracle表空间管理是数据库系统中的核心部分...
本地管理表空间(Local Managed Tablespace, LMT)通过简化空间管理,降低了存储碎片的问题。在LMT中,空间管理由数据库自动处理,不需要进行手动的段合并操作。 改变表空间的存储设置,如最小扩展、默认存储参数等...
在管理表空间的空间时,Oracle提供了两种方式:本地管理表空间(Local Managed Tablespaces, LMT)和数据字典管理表空间(Dictionary Managed Tablespaces, DMT)。LMT使用位图来记录自由的范围,减少了数据字典的...
本地管理表空间(LMT, Locally Managed Tablespace)是Oracle 9i中的一个重要改进,它简化了表空间的管理,特别是段空间的自动管理。 - **建立本地管理表空间**:创建表空间时,使用`LOCAL MANAGEMENT`选项,如`...
这里,`smallfile`和`bigfile`选项用于选择数据文件类型,`extent management local uniform`表示使用本地管理表空间(LMT),简化存储分配管理。创建表空间通常需要拥有`dba_role`, `sysdba`或`sysoper`权限。如果...
1. **本地管理的表空间**:本地管理表空间(Locally Managed Tablespace, LMT)使用段和块来管理空间,与传统的字典管理方式相比,它提供了更高效的空间管理。 2. **列出表空间和数据文件**:可以使用`DBA_DATA_...
- `EXTENT MANAGEMENT LOCAL`用于启用本地管理表空间(LMT),可以更有效地管理空间。 - `UNIFORM SIZE`指定了所有区的统一大小。 - `AUTOALLOCATE`允许Oracle根据表的大小动态分配区的大小。 示例创建的表空间中,...
2. **本地管理表空间(LMT)**:LMT通过直接在数据文件中管理段,简化了空间管理。创建LMT时,可以指定`EXTENT MANAGEMENT LOCAL`和统一大小,如创建名为`USER_DATA`的表空间。 3. **临时表空间**:`CREATE ...