Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44050
  • 博文数量: 20
  • 博客积分: 1419
  • 博客等级: 上尉
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-23 13:02
文章分类
文章存档

2010年(20)

我的朋友

分类: Oracle

2010-04-10 10:08:51

session
  v$session
  alter system kill session '158, 173';**关闭某个或者多个会话(158和173是SID)
 
transaction
  v$transaction
  记录了当前每个活动事务(也就是还没有提交或者回滚的事务)的信息。其中比较重要的字段包括XIDUSN表示当前事务使用的回滚段的编号、XIDSLOT说明该事务在回滚段头部的事务表中对应的记录编号(也可以叫做槽号)、XIDSQN说明序列号、STATUS说明该事务是否为活动的。
 
  自主(原子)事务

1. 块 block(分成3个部分,上面是header,下面是rowdata,中间是free data)
  
   BLOCK是ORACLE下I/O的最小单位(换句话说,一次读出的数据至少是一个BLOCk)。
   ORACLE的BLOCk是由一个或多个OS BLOCk组成的。
   ORACLE的BLOCK是在创建TABLESPACE的时候就划分好的,之后分配使用。
   ORACLE的初始化参数DB_BLOCK_SIZE就是指定BLOCK大小的。
  
   Header (Common and Variable)
    The header contains general block information, such as the block address and the type of segment (for example, data or index).
   Table Directory
      This portion of the data block contains information about the table having rows in this block.
   Row Directory
      This portion of the data block contains information about the actual rows in the block (including addresses for each row piece in the row data area).this space is not reclaimed when the row is deleted.
   Overhead
      The data block header, table directory, and row directory are referred to collectively as overhead. Some block overhead is fixed in size; the total block overhead size is variable. On average, the fixed and variable portions of data block overhead total 84 to 107 bytes.
   Row Data
      This portion of the data block contains table or index data. Rows can span blocks.
   Free Space
      Free space is allocated for insertion of new rows and for updates to rows that require additional space (for example, when a trailing null is updated to a nonnull value).
   BLOCK的结构:  HEADER, FREE SPACE , DATA SPACE。
   HEADER部分和DATA SPACE从BLOCK的两头向中间扩展,中间未用的部分就是FREE SPACE。
   有4个参数控制着BLOCK的分配:INITTRANS, MAXTRANS, PCTFREE, PCTUSED。
   描述如下:BLOCK下包含数据允许最大的操作事务个数取决于
   BLOCK某种空间(TRANSACTION SLOT)的分配。
   允许的事务越多,需要分配越多的TRANS SLOT。
   INITTRANS和MAXTRANS就是规定这个TRANSACTION SLOT的。
   PCTFREE和PCTUSED是规定DATA SPACE和FREE SPACE之间关系的:
   当一个空的BLOCK开始写入数据后,DATA SPACE部分越来越大,
   同时,FREE SPACE越来越小。当数据写入到一定程度时,
   FREE SPACE占全部空间等于PCTFREE时,这个BLOCK就不能再写入新的记录了。
   剩下的这部分(PCTFREE*DB_BLOCK_SIZE)空间用于给现有
   记录update使用。后续的insert会导致从FREE BLOCK列表中拿另外一个BLOCK完成。
   当BLOCK中记录通过delete时,BLOCK的DATA SPACE逐渐减少。
   如果BLOCK此时是一个FULL BLOCK,
   如果DATA SPACE降低至DB_BLOCK_SIZE*PCTUSED后,
   ORACLE就认为这个BLOCK是个FREE的BLOCK,就会放入FREE LIST
   ,可以继续插入数据了。可见,PCTFREE和PCTUSED是两个水位线,
   用来限制FREE、USED两个空间分隔线的位置的。
   有两种BLOCK的空间管理模式:AUTO和MANUAL。
   使用前者,ORACEL会自动管理INITTRANS, MAXTRANS, PCTFREE, PCTUSED
   这几个参数。
   如下是创建一个AUTO管理的TABLESPACE:
   CREATE TABLESPACE data02
    DATAFILE '/u01/oradata/data02.dbf' SIZE 5M
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K
    SEGMENT SPACE MANAGEMENT AUTO;
   
区 extent
 EXTENTS是若干连续的BLOCKS,ORACLE每次给SEGMENT扩空间的时候,
 是以EXTENT为单位的。
 在建TABLE/INDEX时几个参数决定了EXTENT的分配特性:
   INITIAL EXTENT(单位:K)、NEXT EXTENT(单位:K)、PCT INCREASE(按百分比递增)、MIN EXTENTS(单位:个)、MAX EXTENTS(单位:个)。
   基本过程是这样:当SEGMENT创建时,分配的第一个EXTENT大小为INITIAL EXTENT参数指定的大小。
   如果SEGMENT的空间不够,会分配第2个、第3个...EXTENT。
   第2个EXTENT的大小为NEXT EXTENT,
   第3个的大小为NEXT EXTENT*(1+PCT INCREASE),
   每次增加PCT INCREASE,以此类推。 
 每个TABLESPACE都有一个FREE EXTENTS LIST。
 当需要新的EXTENTS时,ORACLE会从这个LIST中取一个FREE EXTENT分配
 给需要的SEGMENT。
 当SEGMENT释放空间时,空闲的EXTENTS会加入到这个LIST中以便后续使用。
段 segment
 CREATE TABLE/INDEX
 的STORAGE字句,用来指定存储特性。如果没有指定,
 按照TABLESPACE的STORAGE属性来,如
 果TABLESPACE也没有指定STORAGE属性,则按照ORACLE的默认值来。
 通常,一个TABLE对应一个SEGMENT(PARTITION的除外)。
 一个SEGMENT只能在一个TABLESPACE内部。
 对于PARTITIONED表每个PARTITION占一个SEGMENT,
 每个SEGMENT可以在不同的TABLESPACE中。
  
2. 区 段
Types of Segments
  data segment:数据段
  index segment:索引段
  temporary segment:临时段
  undo segment:回退段(ORACLE自动分配)
tbs管理技术
DMT: dictionary managed tablespace,主要问题:对数据字典的争用,空间碎片(找不到一块够用的连续区域)
LMT: local managed tablespace,在每个数据文件的头部加入了一个位图区域,记录每个extent的使用情况
uet$: used extents
fet$: free extents
tbs--extents: DMT(uet$,fet$),  LMT(自动分配(递增),统一尺寸) 
段空间管理技术
MSSM: manual segment space management,在段头分配freelist来管理block的使用
ASSM: auto segment space management,freelist被位图数组取代,
            每个块根据剩余空间可能有的状态:>75%,50-75%,25-50%,<25%,可有效减轻buffer busy wait,
             显著提高DML并发操作的性能
segment--blocks: MSSM, ASSM

----------------
    DMT
  LMT
  ASSM 自动段空间管理 表空间级别的段空间管理
    segment space management auto添加到本地管理表空间
   
  tbs管理技术
    tbs--extents: DMT(uet$,fet$),  LMT(自动分配(递增),统一尺寸)
   DMT: dictionary managed tablespace,主要问题:对数据字典的争用,空间碎片(找不到一块够用的连续区域)
        uet$: used extents
       fet$: free extents
       "extent management dictionary"
      10gR2不支持
   LMT: local managed tablespace,在每个数据文件的头部加入了一个位图区域,记录每个extent的使用情况 
        如果db_block_size<=16KB,数据文件头是64KB保留空间
                             如果db_block_size=32KB,数据文件头是128KB保留空间
       以默认的8KB块举例,就是8个块用在数据文件头部用于记录信息,其中1-2块是文件头信息,3-8块记录区的位图信息
     AUTOALLOCATE(system-managed):you can specify the size of the initial extent and Oracle determines
        the optimal size of additional extents, with a minimum extent size of 64 KB.
       This is the default for permanent tablespaces.
      "extent management local [autoallocate]"     
     UNIFORM SIZE:you can specify an extent size or use the default size, which is 1 MB.
       Temporary tablespaces that manage their extents locally can only use this type of allocation.
      "extent management local uniform size 2m "     
     temp tablespace是uniform
    
  segment管理技术
   MSSM: manual segment space management,在段头分配freelist来管理block的使用
               "segment space management manual "
         system,undotbs1,temp:segment space management: manual
   ASSM: auto segment space management,自Oracle920出现
               freelist被位图数组取代,一个二进制数组
               freelist是free blocks的链表,位于段头的块中
         每个块根据剩余空间可能有的状态:>75%,50-75%,25-50%,<25%,
         位图采用了4个状态来代替以前的pctused,什么时候使用该块由pctfree决定
         位图数组是个树形结构
                  消除寻找剩余空间的串行化,使之并行执行
         可有效减轻buffer busy wait,
         显著提高DML并发操作的性能
         PCTUSED,FREELISTS, and FREELIST GROUPS storage parameters are ignored
         "segment space management auto " 
         BMB: BitMap Block
         不能对temp表空间使用ASSM
         LOB对象不能在ASSM表空间中创建
   segment--blocks: MSSM, ASSM
            ASSM必须和LMT结合
   
  sysaux表空间自10g被引入
  表空间的使用情况
    dba_free_space 查询这个视图可以知道空闲表空间的使用情况(select * from dba_free_space)
                段空间的使用情况
    dba_segments 查询这个视图可以知道段空间的使用情况(select * from dba_segments)            

    存储参数:
       default storage (          --create tablespace是default storage,create table是storage
       initial 1m
      next 2m
           minextents 1
      maxextents unlimited
      pctincrease 10
       --freelists 2            --create tablespace无这3个参数,create table有这3个参数
      --freelist groups 2
      --buffer_pool default)  --  区的存储参数    
         pctfree 20
         pctused 60
         initrans 5
     maxtrans 255               --  块的存储参数
      在生成段的时候,会同时分配初始区(initial extents),
   初始区的第一个块就格式化为segment header,
   并被用来记录free list描述信息、extents信息,HWM信息等。
   free list是一种单向链表用于定位可以接收数据的块,
   在字典管理方式的表空间中,Oracle使用free list来管理未分配
   的存储块。
   Oracle记录了有空闲空间的块用于insert或Update。
     
   scott:
   SQL> set long 2000
   SQL> select dbms_metadata.get_ddl('TABLE','TEST') from dual;
      create table "scott"."test"
       ( "id" number,  
        "name" varchar2(30)  
       ) pctfree 10 pctused 40 initrans 1 maxtrans 255
        nocompress logging
      storage(initial 65536 next 1048576 minextents 1
          maxextents 2147483645
          pctincrease 0 freelists 1 freelist groups 1
          buffer_pool default) 
      tablespace "users"
     
 创建表空间: create tablespace test 
    datafile '/opt/oracle/oradata/lh/test01.dbf' size 1m
              autoextend on next 5m maxsize unlimited,
       '/opt/oracle/oradata/lh/test02.dbf' size 1m
              autoextend on next 5m maxsize unlimited --对每一个文件
    logging
    extent management dictionary
    --extent management local
    --extent management local uniform size 2m
    segment space management manual
    --segment space management auto
    ;
      drop tablespace test including contents and datafiles;这句话的意思是删除表空间,包括它里面的组成及其数据文件
     
   10gR2
                        创建表空间时,不能指定区的存储参数和块的存储参数
   创建表时,可指定和表空间不同的
   (1) tbs: 字典   segment: 手动
    create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 1m autoextend on next 5m maxsize unlimited,
          '/opt/oracle/oradata/lh/test02.dbf' size 1m autoextend on next 5m maxsize unlimited
     logging
     extent management dictionary
     --extent management local
     --extent management local uniform size 2m
     segment space management manual
     --segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
     -- pctfree 20
     -- pctused 60
     -- initrans 5
     -- maxtrans 255             --  块的存储参数
     ;
                                         不能创建DMT的表空间
   (2)LMT,区分配:自动,段空间管理:手动
     create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 1m autoextend on next 5m maxsize unlimited,
          '/opt/oracle/oradata/lh/test02.dbf' size 1m autoextend on next 5m maxsize unlimited
     logging     
     extent management local
     --extent management local uniform size 2m
     segment space management manual
     --segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
      --pctfree 20
      --pctused 60
      --initrans 5
      --maxtrans 255             --  块的存储参数
     ;
                    不能指定区的存储参数和块的存储参数
          initial extent: 64K
          minextents 1
    maxextents unlimited
    drop tablespace test including contents and datafiles;
      (3)LMT,区分配:统一大小,段空间管理:手动
     create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 3m autoextend on next 5m maxsize unlimited,
          '/opt/oracle/oradata/lh/test02.dbf' size 3m autoextend on next 5m maxsize unlimited
     logging     
     --extent management local
     extent management local uniform size 2m
     segment space management manual
     --segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
      --pctfree 20
      --pctused 60
      --initrans 5
      --maxtrans 255             --  块的存储参数
     ;
                   不能指定区的存储参数和块的存储参数
          initial extent: 2M
          next extent: 2M
          minextents 1
    maxextents unlimited
    drop tablespace test including contents and datafiles;
   (4)LMT,区分配:自动,段空间管理:自动
     create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 1m autoextend on next 5m maxsize unlimited,
          '/opt/oracle/oradata/lh/test02.dbf' size 1m autoextend on next 5m maxsize unlimited
     logging     
     extent management local
     --extent management local uniform size 2m
     --segment space management manual
     segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
     --pctfree 20
     --pctused 60
     --initrans 5
     --maxtrans 255               --  块的存储参数
     ;
                                       不能指定区的存储参数和块的存储参数
                    initial extent: 64K
                    minextents 1
     maxextents unlimited
     next 1048576
     pctincrease 0
     drop tablespace test including contents and datafiles;
      (5)LMT,区分配:统一大小,段空间管理:自动
     create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 3m autoextend on next 5m maxsize unlimited,
          '/opt/oracle/oradata/lh/test02.dbf' size 3m autoextend on next 5m maxsize unlimited
     logging     
     --extent management local
     extent management local uniform size 2m
     --segment space management manual
     segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
     --pctfree 20
     --pctused 60
     --initrans 5
     --maxtrans 255               --  块的存储参数
     ;
                    不能指定区的存储参数和块的存储参数
          initial extent: 2M
          next extent: 2M
          pctincrease 0
          minextents 1
    maxextents unlimited
    drop tablespace test including contents and datafiles;
      (6)LMT,区分配:统一大小
     create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 3m autoextend on next 5m maxsize unlimited,
          '/opt/oracle/oradata/lh/test02.dbf' size 3m autoextend on next 5m maxsize unlimited
     logging     
     --extent management local
     extent management local uniform size 2m
     --segment space management manual
     --segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
     --pctfree 20
     --pctused 60
     --initrans 5
     --maxtrans 255               --  块的存储参数
     ;
                    不能指定区的存储参数和块的存储参数
          initial extent: 2M
          next extent: 2M
          pctincrease 0
          minextents 1
    maxextents unlimited
    segment space management: auto
    drop tablespace test including contents and datafiles;
       (7)LMT
     create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 1m ,
          '/opt/oracle/oradata/lh/test02.dbf' size 1m
     --logging     
     --extent management local
     --extent management local uniform size 2m
     --segment space management manual
     --segment space management auto
     --default storage (
     --  initial 1m
     --  next 2m
     --  minextents 1
     --  maxextents unlimited
     --  pctincrease 10
     --  )                      --  区的存储参数    
     --pctfree 20
     --pctused 60
     --initrans 5
     --maxtrans 255               --  块的存储参数
     ;
                                       不能指定区的存储参数和块的存储参数
                    initial extent: 64K
                    next extent: 1M
                    pctincrease: 0
                    minextents 1
     maxextents : unlimited
     extent management: local
     allcation type: system
     segment space management: auto
     logging: logging  (temp:nologging)
     force logging: no
                    datafile autoextend: no
     datafile maxsize: 0
     increment_by: 0
     drop tablespace test including contents and datafiles;
      (8)
      create tablespace test 
     datafile '/opt/oracle/oradata/lh/test01.dbf' size 3m autoextend on next 5m maxsize unlimited,
        '/opt/oracle/oradata/lh/test02.dbf' size 3m autoextend on next 5m maxsize unlimited
     extent management local 
     segment space management auto;     
     *********如果不写next 5m,每次只会增加1个block,如果写上就会按5M增加
     scott:
       create table t1(id number) tablespace test;
                     set long 2000
      select dbms_metadata.get_ddl('TABLE','TEST') from dual; 
       create table "scott"."test"
        ( "id" varchar2(10),
            "name" varchar2(30),
            primary key ("id")
          using index pctfree 10 initrans 2 maxtrans 255 compute statistics
          storage(initial 65536 next 1048576 minextents 1 maxextents 2147483645
                  pctincrease 0 freelists 1 freelist groups 1 buffer_pool default)
          tablespace "users"  enable
         )
         pctfree 10
         pctused 40
         initrans 1
         maxtrans 255
         nocompress
         logging
         storage(
           initial 65536
          next 1048576
          minextents 1
          maxextents 2147483645
           pctincrease 0
          freelists 1
          freelist groups 1
          buffer_pool default)
         tablespace "users"
             手动创建表,使用不同于表空间的参数:
         create table test2
         ( "id" varchar2(10),
           "name" varchar2(30),
           primary key ("id")           
          )
          pctfree 20
          pctused 50
          initrans 5
          maxtrans 255
          compress
          nologging
          storage(
           initial 1048576
           next 1048576
           minextents 2
           maxextents 2147483645
           pctincrease 10
           freelists 1
           freelist groups 1
           buffer_pool default)
          tablespace test;
        select dbms_metadata.get_ddl('TABLE','TEST') from dual;
        create table "scott"."test2"
          ( "id" varchar2(10),
           "name" varchar2(30),
            primary key ("id")
           using index pctfree 10 initrans 2 maxtrans 255 nologging
           storage(initial 65536 next 1048576 minextents 1 maxextents 2147483645
           pctincrease 0 freelists 1 freelist groups 1 buffer_pool default)
           tablespace "test"  enable
          )
          pctfree 20
          pctused 50
          initrans 5
          maxtrans 255
          compress
          nologging
         storage(
           initial 2097152
          next 1048576
          minextents 1
          maxextents 2147483645
           pctincrease 0
          freelists 1
          freelist groups 1
          buffer_pool default)
         tablespace "test"
            drop tablespace test including contents and datafiles;
 
 
  drop tablespace test including contents and datafiles;
 
  修改数据文件的属性:
  alter database datafile '/opt/oracle/oradata/lh/tbs101.dbf' autoextend on next 5m maxsize unlimited;
alter system set db_create_file_dest = '$ORACLE_BASE/oradata/lh'; 修改这个参数是为了指定目录,然后创建下面的表空间
create tablespace omf_ts1;
                    /opt/oracle/oradata/lh/LH/datafile/o1_mf_omf_ts1_5kbrz0dy_.dbf
                 file size: 104857600
                 initial extent: 64K
                    next extent:
                    minextents 1
     maxextents : unlimited
     extent management: local
     allcation type: system
     segment space management: auto
     logging: logging 
     force logging: no
                    datafile autoextend: yes
     datafile maxsize: 34359721984 bytes
     increment_by: 12800 blocks    100M
drop tablespace omf_ts1 including contents and datafiles;

------------------------------
  区分配:  Automatic,  Uniform
  Segment Space Management: Automatic, Manual
 
  EXTENT MANAGEMENT LOCAL 的两种 Extents 分配方式:
  AUTOALLOCATE (system-managed):you can specify the size of the initial extent and Oracle determines
    the optimal size of additional extents, with a minimum extent size of 64 KB.
   This is the default for permanent tablespaces.  
  UNIFORM SIZE:you can specify an extent size or
   use the default size, which is 1 MB. Temporary
   tablespaces that manage their extents locally
   can only use this type of allocation.
  当使用 Local 管理 Extents 时参数 NEXT, PCTINCREASE,
  MINEXTENTS, MAXEXTENTS, and DEFAULT STORAGE 不能使用。
    SEGMENT SPACE MANAGEMENT 的两种管理方式:
   MANUAL
     Specifying MANUAL tells Oracle that you want to use
     free lists for managing free space within segments.
     Free lists are lists of data blocks that have
     space available for inserting rows. This form of
     managing space within segments is called manual
     segment-space management because of the need to
     specify and tune the PCTUSED, FREELISTS,
     and FREELISTS GROUPS storage parameters for
     schema objects created in the tablespace.
   AUTO
     This keyword tells Oracle that you want to use bitmaps
     to manage the free space within segments. A bitmap,
     in this case, is a map that describes the status of
     each data block within a segment with respect to
     the amount of space in the block available for inserting
     rows. As more or less space becomes available in a data
     block, its new state is reflected in the bitmap.
     Bitmaps allow Oracle to manage free space more
     automatically, and thus, this form of space management
     is called automatic segment-space management.It completely
     eliminates any need to specify and tune the PCTUSED,
     FREELISTS, and FREELISTS GROUPS storage parameters for
     schema objects created in the tablespace. If such
     attributes should be specified, they are ignored.
    

区管理:本地管理
    区分配:自动,段空间管理:自动
      create  tablespace "tbs"
        datafile '/opt/oracle/oradata/lh/tbs01.dbf'
        size 5m
         autoextend on next 1m maxsize unlimited logging
        extent management local
        segment space management auto
    区分配:统一大小,段空间管理:自动
        create smallfile tablespace "tbs"
          datafile '/opt/oracle/oradata/lh/tbs01.dbf' size 5m
          autoextend on next 1m maxsize unlimited logging
         extent management local uniform size 1m
         segment space management auto
    区分配:自动,段空间管理:手动
       create smallfile tablespace "tbs"
         datafile '/opt/oracle/oradata/lh/tbs01.dbf' size 5m
          autoextend on next 1m maxsize unlimited logging
         extent management local
         segment space management manual
    区分配:统一大小,段空间管理:手动
       create smallfile tablespace "tbs"
         datafile '/opt/oracle/oradata/lh/tbs01.dbf' size 5m
          autoextend on next 1m maxsize unlimited logging
         extent management local uniform size 1m
         segment space management manual       
区管理:字典管理 uet$ fet$  10gR2不能创建DMT的表空间
        create smallfile tablespace "tbs"
          datafile '/opt/oracle/oradata/lh/tbs01.dbf' size 5m
          autoextend on next 1m maxsize unlimited logging
         extent management dictionary
         default storage ( initial 1m next 2m
         minextents 1 maxextents unlimited pctincrease 10)
         minimum extent 1m
        
        
       
        
在生成段的时候,会同时分配初始区(initial extents),
初始区的第一个块就格式化为segment header,
并被用来记录free list描述信息、extents信息,HWM信息等。
free list是一种单向链表用于定位可以接收数据的块,
在字典管理方式的表空间中,Oracle使用free list来管理未分配
的存储块。
Oracle记录了有空闲空间的块用于insert或Update。
scott:
SQL> set long 2000
SQL> select dbms_metadata.get_ddl('TABLE','TEST') from dual;
     CREATE TABLE "SCOTT"."TEST"
     ( "ID" NUMBER,  
       "NAME" VARCHAR2(30)  
     ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
       NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1
            MAXEXTENTS 2147483645
            PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
            BUFFER_POOL DEFAULT) 
    TABLESPACE "USERS"
 CREATE TABLE "SCOTT"."TEST2"
     ( "ID" NUMBER,  
       "NAME" VARCHAR2(30)  
     ) PCTFREE 0 PCTUSED 60 INITRANS 1 MAXTRANS 255
       NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1
            MAXEXTENTS 2147483645
            PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
            BUFFER_POOL DEFAULT) 
    TABLESPACE "USERS"

Row Chaining(行链接)和 Row Migrating(行迁移)
 Row Chaining: insert
   the row is too large to fit into one data block
   when it is first inserted. In this case, Oracle stores
   the data for the row in a chain of data blocks (one or more)
   reserved for that segment. Row chaining most often occurs with
    large rows, such as rows that contain a column of datatype
    LONG or LONG RAW. Row chaining in these cases is unavoidable.
 Row Migrating: update
   a row that originally fit into one data block is updated so
   that the overall row length increases, and the block's free
   space is already completely filled. In this case, Oracle migrates
    the data for the entire row to a new data block, assuming the
    entire row can fit in a new block. Oracle preserves the original
    row piece of a migrated row to point to the new block containing
    the migrated row. The rowid of a migrated row does not change.
阅读(1533) | 评论(0) | 转发(0) |
0

上一篇:TABLESPACES

下一篇:SGA

给主人留下些什么吧!~~