• 关于延迟段创建-P1


    1 疑问点

    P1页有句话说道:

    在Oracle 11.2.0.3.0以上版本中,创建新表时默认一个区都不会分配。

    其实SYS用户是不遵循这个规则的。

    2 环境创建

    以版本11.2.0.4.0为例子。

    2.1 创建用户

    授权,创建表空间,更改默认表空间。

    SYS@zkm1> create user zkm identified by oracle;
    
    User created.
    
    SYS@zkm1> grant dba to zkm;
    
    Grant succeeded.
    
    SYS@zkm1> create tablespace tbs1 datafile '+data' size 10m;
    
    Tablespace created.
    
    SYS@zkm1> alter user zkm default tablespace tbs1;
    
    User altered.
    

    2.2 创建表test

    新的用户zkm和sys用户下均创建表test。

    SYS@zkm1> create table test(id int);
    
    Table created.
    
    SYS@zkm1> create table zkm.test(id int);
    
    Table created.
    
    SYS@zkm1> desc test
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER(38)
    
    SYS@zkm1> desc zkm.test
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER(38)
    

    2.3 查看表的段信息

    可以看到用户sys的表没有遵循延迟段创建的规则。

    SYS@zkm1> set linesize 500
    SYS@zkm1> select owner,segment_name from dba_segments where owner in ('SYS','ZKM') and segment_name='TEST';
    
    OWNER                          SEGMENT_NAME
    ------------------------------ ---------------------------------------------------------------------------------
    SYS                            TEST
    
    SYS@zkm1> insert into zkm.test values(1);
    
    1 row created.
    
    SYS@zkm1> select owner,segment_name from dba_segments where owner in ('SYS','ZKM') and segment_name='TEST';
    
    OWNER                          SEGMENT_NAME
    ------------------------------ ---------------------------------------------------------------------------------
    ZKM                            TEST
    SYS                            TEST
    
    SYS@zkm1> commit;
    
    Commit complete.
    

    2.4 延迟段创建相关参数

    默认是启用的,可以动态修改为禁用后,只对修改后的表起作用。
    对于已经延迟段创建并且还没有insert过数据的表,exp是不导出这些表的,expdp则不受影响。

    SYS@zkm1> show parameter deferred_segment_creation
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    deferred_segment_creation            boolean     TRUE
    SYS@zkm1> alter system set deferred_segment_creation=false sid='*' scope=both;
    
    System altered.
    
    SYS@zkm1> create table zkm.test1(id int);
    
    Table created.
    
    SYS@zkm1> select owner,segment_name from dba_segments where owner='ZKM' and segment_name='TEST1';
    
    OWNER                          SEGMENT_NAME
    ------------------------------ ---------------------------------------------------------------------------------
    ZKM                            TEST1
    
  • 相关阅读:
    cocos2dx
    读书日记-快速排序算法
    vs重装找不到 $(WindowsSdkDir) 配置问题
    IOS应用FFMPEG库
    OpenGL ES2.0贴图
    OpenGL ES2.0光照
    IOS系统配置FFMEPG
    GPUImage库的使用
    spring08事务
    java10---点餐系统
  • 原文地址:https://www.cnblogs.com/PiscesCanon/p/12723504.html
Copyright © 2020-2023  润新知