extent分配策略以及11g新程式SMCO
Extent有兩種分配策略:autoallocate和uniform,在建立表空間時指定,一旦建立不可更改
Uniform預設為1M;
Autoallocate:extent以64K起直至擴充套件到64M,對應關係如下表
Segment Size Preferred Next Extent Size
============ ==========================
Upto 1m ------------------>64k
Upto 64m ------------------->1m
Upto 1g ------------------->8m
Above 1g ------------------>64m
11202引入隱含引數"_partition_large_extents"(預設為true),所有分割槽表預設initial extent為8M,另有"_index_partition_large_extents "(預設false)用於索引分割槽;
過小的extent不但消耗SGA,還會影響全表掃描的效能(見注1)
ASM extent由1個或多個AU組成,ASM使用可變大小的extent用於降低大資料庫對SGA的消耗,規則如下:
0-19999區間,extent=AU
20000-39999區間,extent=4*AU
40000+區間,extent=16*AU
注:磁碟組compatible>=11.1
引數
建立表時可指定initial/minextents/next引數,三者與uniform協同工作,關係如下:
當minextents=1時,分配max(initial, uniform);
大於1時,分配max(initial extent, uniform) + (n-1) * size
如果指定了next,size=next,否則size=uniform
測試
create tablespace test
datafile '/u01/app/oracle/oradata/KBCOOK/test01.dbf' size 50m
extent management local uniform. size 1m;
CASE 1
SQL> create table test_tab (col1 varchar2(2)) tablespace test storage(initial 65535 minextents 2);
SQL> select bytes from dba_extents where segment_name = 'TEST_TAB';
BYTES
----------
1048576
1048576
CASE 2
SQL> create table test_tab (col1 varchar2(2)) tablespace test storage(initial 1m minextents 5);
Table created.
SQL> select bytes from dba_extents where segment_name = 'TEST_TAB';
BYTES
----------
1048576
1048576
1048576
1048576
1048576
CASE 3
SQL> create table test_tab (col1 varchar2(2)) tablespace test storage(initial 2m minextents 2);
SQL> select bytes from dba_extents where segment_name = 'TEST_TAB';
BYTES
----------
1048576
1048576
1048576
CASE 4
SQL> create table test_tab (col1 varchar2(2)) tablespace test storage(initial 2m next 3m minextents 3);
Table created.
SQL> select bytes from dba_extents where segment_name = 'TEST_TAB';
BYTES
----------
1048576
1048576
1048576
1048576
1048576
1048576
1048576
1048576
Extent預分配
11g引入extent pre-allocation特性,由SMCO(space management coordinator)負責,其動態spawn子程式Wnnn用於空間分配和回收;
SMCO功能:
1
Extent預分配
資料檔案須開啟autoextend,SMCO依據歷史資訊,在表空間裡所有尚未達到 maxsize的資料檔案間均勻的分配擴充套件;
2
回收臨時段
3
Securefile lob預擴充套件/回收
如何開啟/關閉SMCO
--可動態修改
ALTER SYSTEM SET "_ENABLE_SPACE_PREALLOCATION" = 0;--關閉
ALTER SYSTEM SET "_ENABLE_SPACE_PREALLOCATION" = 3;--啟用
此特性有時會產生意料之外的結果,譬如資料檔案擴充套件到maxsize(但實際資料沒有這麼大)
In 11g, the system tries to keep free extent in the tablespace ahead of time based on allocation projection. In this test case, continuous insert operations caused the tablespace growth rate to be very high, therefore, system "over" extended the tablespace, where the free space cushion is far more than the NEXT value specified by user
AUTOEXTEND Grows To Full Size Without Reason [ID 1459097.1]
Why The Data Files Got Extended Up Over The Weekend [ID 1538442.1]
注1:
db_file_multiblock_read_count決定一次IO最大讀取塊數,用於全表或快速全索引掃描;
當系統只有非工作量統計資訊時,在計算多塊讀的IO cost公式中充當分母,即值越大oracle越傾向選擇全表或快速全索引掃描;
有工作量統計資訊時,系統改用MBRC
http://space.itpub.net/15480802/viewspace-739468
並非所有多塊讀IO一次都讀取db_file_multiblock_read_count規定的數量,受如下因素限制:
段頭只能單塊讀;
不能垮越 extent;
如果extent中部分塊已經快取,除非直接讀,否則不會重新讀取
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-763188/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 11g 表空間extent預分配特性
- undo segment的建立、線上以及extent的分配原則。
- undo segment的建立、online以及extent的分配原則
- 11G 新特性:密碼大小寫策略密碼
- Java新提案:Extent-Local變數Java變數
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- local管理的表空間下autoallocate方式extent的分配原則
- 淺談線上廣告分配策略
- Java 記憶體分配策略Java記憶體
- Oracle9i tablespace空間分配中initial_extent與LMT,DMTOracle
- 【11gR2新特性】extent延遲建立
- 記憶體分配策略學習記憶體
- JVM GC 與 記憶體分配策略JVMGC記憶體
- SELinux策略語法以及示例策略Linux
- Oracle 區 EXTENTOracle
- 深入探究JVM之物件建立及分配策略JVM物件
- JVM 之 記憶體分配與回收策略JVM記憶體
- Kafka分割槽分配策略(Partition Assignment Strategy)Kafka
- JVM垃圾回收和記憶體分配策略JVM記憶體
- Kafka 消費組消費者分配策略Kafka
- Java記憶體區域與分配策略Java記憶體
- IPv6基於策略的地址分配
- ORACLE 11G 新的後臺程式Oracle
- 垃圾收集機制與記憶體分配策略記憶體
- 垃圾收集器與記憶體分配策略記憶體
- 理解ASM的ExtentASM
- Java虛擬機器05——物件分配與回收策略Java虛擬機物件
- JVM 垃圾收集器與記憶體分配策略JVM記憶體
- JVM垃圾回收器、記憶體分配與回收策略JVM記憶體
- java垃圾收集器與記憶體分配策略Java記憶體
- 【SGA】【PGA】普適的Oracle記憶體分配策略Oracle記憶體
- C/C++記憶體分配以及釋放C++記憶體
- 如何對錶手工擴充套件一個extent或多個extent套件
- block/extent/segment的理解BloC
- Javascript策略模式理解以及應用JavaScript模式
- JVM記憶體分配策略,及垃圾回收演算法JVM記憶體演算法
- JVM(3)-垃圾收集器與記憶體分配策略JVM記憶體
- Java虛擬機器記憶體分配與回收策略Java虛擬機記憶體