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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- KEEP POOL和CACHE屬性的區別
- oracle11g之create table儲存引數buffer_pool含義及作用系列三Oracle
- Buffer Cache(緩衝區快取)篇:keep pool(保留池)快取
- SHARED_POOL_RESERVED_SIZE引數的設定及作用
- Comparator and Comparable 及Collections and Collection 的區別及聯絡?
- mysql引數之innodb_buffer_pool_size大小設定MySql
- Python: 列表、陣列及迭代器切片的區別及聯絡Python陣列
- buffer與cache的區別
- Buffer和Cache的區別
- Buffer 與 Cache 的區別
- Cache 和 Buffer的區別
- [轉]Apache與Tomcat 區別及聯絡ApacheTomcat
- 轉_Buffer Cache的原理及使用
- Linux Buffer/Cache 的區別Linux
- buffer 與cache 的區別2
- 分割槽表放入keep pool,recycle pool的問題及解析
- 什麼是BSS/OSS,及區別和聯絡
- data_object_id 及 object_id 的聯絡與區別Object
- Cache 和 Buffer 的區別在哪裡?
- linux cache與buffer的區別Linux
- Linux free中buffer與cache區別Linux
- MySQL的create table as 與 like區別MySql
- javaSE中的==和equals的聯絡與區別Java
- Oracle中User和Schema的區別和聯絡Oracle
- Oracle 11g buffer cache的設定Oracle
- oracle中用Create Table建立表時,Storage中引數的含義!Oracle
- C語言可變引數以及printf()、sprintf()、vsprintf() 的區別與聯絡C語言
- Linux上shmmax引數的設定及含義LinuxHMM
- Truncate table 詳解及與delete,drop 的區別delete
- Truncate table詳解及與delete,drop的區別delete
- 深究遞迴和迭代的區別、聯絡、優缺點及例項對比遞迴
- 中斷和異常,陷阱的區別和聯絡
- Cache 和 Buffer 有什麼區別?
- Oracle 的 KEEP pool, RECYCLE pool和DEFAULT poolOracle
- Linux記憶體管理機制中buffer和cache的區別Linux記憶體
- Shared pool的library cache lock/pin及硬解析
- Linux上shmmax引數的設定及含義(轉)LinuxHMM
- cookie與session的區別與聯絡CookieSession