create table中的buffer pool 设置 KEEP 及CACHE 参数的联系及区别


CREATE TABLESPACE LOG_DATA DATAFILE
  '/ocfs_data/mxdell/log_data01.dbf' SIZE 4001M AUTOEXTEND OFF,
  '/ocfs_ctrl_redo/mxdell/log_data2.dbf' SIZE 2048064K AUTOEXTEND OFF
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 20M
BLOCKSIZE 16K
SEGMENT SPACE MANAGEMENT AUTO    -- ASSM
FLASHBACK ON;


----------------------


CREATE TABLE DFMS.EDIBTO850_MAIN
(
  CONTROLNUMBER     VARCHAR2(40 BYTE)  NOT NULL,
  ISA06             VARCHAR2(50 BYTE),
  CREATE_TIME       DATE        DEFAULT sysdate
)
TABLESPACE LOG_DATA
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          10M
            NEXT             20M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCOMPRESS
NOCACHE   
NOPARALLEL
MONITORING;

 

解释:

-- create ablespace 中的flashback on 及 flashback off .

对于crate tablesapce中的FLASHBACK ON,默认情况下创建tablespace就是
启动flashback, 指定将tablespace放在FLASHBACK模式下,Oracle会为这个
tablespace保存闪回日志数据,那么在做FLASHBACK DATABASE 的时候,能够
应用到此表空间上,如果我们不设置flashback模式,默认是FLASHBACK ON. 

指定FLASHBACK OFF将使对应的tablespace不在FLASHBACK模式下,Oracle将
不会为它保存任何的闪回日志数据,在做FLASHBACK DATABASE之前,我们必
须先将这个表空间中的数据文件offline或者drop他们,或者还有一种方式
就是,你可以将整个tablespace offline, 在以上任何一种情况下,数据库
不删除存在的闪回日志 。

 

-- create table 

log_data表空间启用了ASSM, 那么建表的时候,没有明确指定pctused, 默认
pctused是0,pctfree默认还是10,INITRANS 1, MAXTRANS 255 表示表的数据
块头部最小和最大的ITL槽(Interested Transaction List), 一般为了优化ITL,
可以设置INITRANS为3或4即可(足够)。关于ITL可以参考下面的链接。PCTINCREASE
在autoallocate下起作用,表示下一个extent大小为前一个的(1+pctincrease%)倍 ,
在uniform. size设置的tablespace下不起作用,Oracle 建议使用PCTINCREASE
的零设置 .

http://space.itpub.net/35489/viewspace-671133 

 


BUFFER POOL ----- 
包括DEFAULT、KEEP、RECYCLE三个POOL,其大小分别对应三个参数:DB_CACHE_SIZE,
DB_KEEP_CACHE_SIZE, DB_RECYCLE_CACHE_SZIE,这三个POOL相互独立,没有包含的关系。
语法如下:
create/alter table ...... storage(buffer_pool  keep);

default -- 普通的buffer cache .
recycle -- 通常将偶尔访问的大表放入recycle pool中,这样做是为了防止它的一次访问
就将那些频繁使用且应该长时间留在buffer cache中的对象清除出内存。

keep -- 当表被读入的时候,放入keep pool,keep pool 中的数据会尽量长时间的保留,
保留的时间长短依据keep pool的负载而定。对于放入KEEP POOL中的表数据,要么全表放
入,要么全表都out,不会只放入一部分数据。通常将经常访问的对象放入keep pool中。

 

 

KEEP POOL 及 CACHE 参数的联系及区别 ----- 

create/alter table ...... cache;
设置表为cache时,当全表扫描时,将对象数据放入default pool的LRU热端(备注:
如果是nocache,则放入LRU冷端,很快就会被age out),cache适合频繁使用的小
表, 如果有太多的表cache, LRU链表会很拥挤,LRU机制也会受影响,所以该把表
放入keep pool,而且cache子句也不适合大表,因为有可能这个大表会占据整个
LRU链表。 

当BUFFER_POOL和CACHE同时使用时,KEEP比NOCACHE有优先权。BUFFER_POOL用来指
定存贮的缓冲池,而CACHE/NOCACHE指定存储的方式。建表时候不注明的话,NOCACHE
是默认值。


CACHE
For data that is accessed frequently, this clause indicates that the blocks
retrieved for this table are placed at the most recently used end of the
least recently used (LRU) list in the buffer cache when a full table scan
is performed. This attribute is useful for small lookup tables.

NOCACHE 
For data that is not accessed frequently, this clause indicates that the
blocks retrieved for this table are placed at the least recently used end
of the LRU list in the buffer cache when a full table scan is performed.
NOCACHE is the default for LOB storage. 

 

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

转载于:http://blog.itpub.net/35489/viewspace-671249/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值