首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动扩展/自动分配混淆

自动扩展/自动分配混淆
EN

Stack Overflow用户
提问于 2019-06-06 15:47:33
回答 2查看 264关注 0票数 0

在oracle中,创建表空间中的区段管理子句具有关键字自动分配。但是在表中,文件有一个可自动扩展的列。create空间中的关键字是否设置此特定列?

编辑

我想要做的是从一个现有的数据库中重建“创建表空间”命令。所以需要确定我是否需要使用自动分配

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-06 16:13:51

不,那些事没有关系。

自动分配意味着要让数据库决定为对象及其数据“分配”的大小范围。

文档 -

如果您期望表空间包含不同大小的对象,那么AUTOALLOCATE是最好的选择。如果对空间分配和取消分配有很多控制并不重要,AUTOALLOCATE也是一个很好的选择,因为它简化了表空间管理。这种设置可能会浪费一些空间,但是让Oracle数据库管理您的空间的好处很可能超过了这个缺点

自动扩展意味着,如果表空间“满”,则表空间可以自己生成文件,直到它们达到预定的限制,或者可选地“无限”。

票数 1
EN

Stack Overflow用户

发布于 2019-06-06 16:19:58

是的这是一种混淆。自动分配是TABLESPACE的属性(参见子句 ),自动扩展是文件的代表--参见规格说明子句(AUTOEXTEND )

这里是一个小例子(文件名因简洁而缩短)

参见相关的数据字典列dba_tablespaces.ALLOCATION_TYPEdba_data_files.AUTOEXTENSIBLE

代码语言:javascript
运行
复制
CREATE TABLESPACE T1   DATAFILE 'D:\...\T1.DBF' SIZE 1M
   EXTENT MANAGEMENT LOCAL AUTOALLOCATE
 ;



CREATE TABLESPACE T2   DATAFILE 'D:\...\T2.DBF'  SIZE 1M   AUTOEXTEND ON
   EXTENT MANAGEMENT LOCAL  UNIFORM SIZE 128K
 ;

select TABLESPACE_NAME,EXTENT_MANAGEMENT, ALLOCATION_TYPE
from dba_tablespaces where tablespace_name in ('T1','T2');
TABLESPACE_NAME                EXTENT_MAN ALLOCATIO
------------------------------ ---------- ---------
T1                             LOCAL      SYSTEM   
T2                             LOCAL      UNIFORM  

select AUTOEXTENSIBLE,  FILE_NAME from dba_data_files;

AUT FILE_NAME
--- -------------------
NO  T1.DBF
YES T2.DBF
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56481072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档