ITPub博客

首页 > 数据库 > Oracle > Oracle 11.2.0.4 创建普通表,区及段默认是否会分配

Oracle 11.2.0.4 创建普通表,区及段默认是否会分配

原创 Oracle 作者:Haoword_wang 时间:2023-08-12 21:21:47 0 删除 编辑

Oracle 10G 中,新创建一张新表,初始至少为这个表分配一个区。而从11.2.0.3 以上版本中,创建新表时默认一个区都不分配。只有在想表中插入第一行数据时,才会默认为表分配第一个区,如下:

建表:

查询占用空间:

通过上述测试,发现Oracle 11G 默认创建了一个区,结果与我们预期的截然不同,为什么?下面我们通过各种场景测试该现象

测试场景:

第一场景

我们进一步查询与该操作相关的参数deferred_segment_creation,默认为true

同时我们确认段默认是否会创建:

查询是TRUE ,与我们的预先的不通,我们测试一下修改一下deferred_segment_creation 参数是否会影响(SYS用户):


SYS用户下创建对象默认还是会分配一个区及段,该参数无影响,如下:


第二场景

查询是TRUE ,与我们的预先的不通,我们测试一下修改一下deferred_segment_creation 参数是否会影响(普通用户):
普通用户TEST下创建对象默认还是会分配一个区及段,该参数影响,如下:

普通用户创建表,默认不会分配区及段;

第三场景

普通用户使用system 表空间:


第四场景

设置deferred_segment_creation 参数为false


问题总结:

通过上述实验场景,发现

第一 sys 用户下创建对象默认分配区及段

第二 普通用户创建对象默认不分配区及段

第三 上述现象和表空间无关

第四 11G普通用户是否分配空间与参数deferred_segment_creation 有关系




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26342786/viewspace-2969940/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle Postgresql MySQL DBA,DEVOPS 开发人员

注册时间:2013-03-03

  • 博文量
    73
  • 访问量
    69127