LMT和DMT下儲存引數的異同
本文的DB_BLOCK_SIZE=8K
1、字典管理
MIN_EXTENT:可以是大於0的任意整數
PCT_INCREASE:
INITIAL:,則如果建表時設定的INITIAL設定的值大於2*D,則實際INITIAL=CEIL(T/D)*D;如果建表時設定的INITIAL設定的值小於等於2*D,則實際INITIAL值為2*D。
如:EXP-1
create table test1
(
a number
)
tablespace system--字典管理表空間
storage
(
initial 1k
next 1k
minextents 4
pctincrease 20
);
在這個例子中,實際INITIAL為16K;
EXP-2
create table test2
(
a number
)
tablespace system--字典管理表空間
storage
(
initial 100k
next 100k
minextents 4
pctincrease 20
);
在這個例子中,實際的INITIAL=CEIL(100/8)*8=104
NEXT:
如果S=1,則實際的NEXT=CEIL(INITIAL*(1+P/100)/N)*N,其中INITIAL為實際值,而不是設定值;
如果S>1,則NEXT的實際值為S=1的情況下的第S+1個extent的值
EXP-3
create table test1
(
a number
)
tablespace system--字典管理表空間
storage
(
initial 100k
next 100k
minextents 1
pctincrease 20
);
在本例中,實際的NEXT=CEIL(104*1.2/8)*8=128
EXP-4
create table test1
(
a number
)
tablespace system--字典管理表空間
storage
(
initial 100k
next 100k
minextents 4
pctincrease 20
);
在本例中,實際的NEXT=192。
第二個EXTENT=INITIAL=104
SQL> select ceil(104*1.2/8)*8 from dual;(第3個EXTENT)
CEIL(124.8/8)*8
---------------
128
SQL> select ceil(128*1.2/8)*8 from dual;(第4個EXTENT)
CEIL(128*1.2/8)*8
-----------------
160
SQL> c/128/160
1* select ceil(160*1.2/8)*8 from dual;(第5個EXTENT)
SQL> /
CEIL(160*1.2/8)*8
-----------------
192
在本例中,NEXT=192K
2、本地管理
在建立表空間和建立表時,都可以設定storage引數。其中表的storage引數的優先順序大於表空間的引數。如果建表時沒有指定storage,則oracle會繼承表所對應的表空間的儲存引數。
INITIAL
LMT
下,oracle在表空間一級不能設定NEXT, PCTINCREASE, MINEXTENTS,
MAXEXTENTS,但在段一級可以設定這幾個引數(如在建表、索引的時候)。如果在段一級設定了這幾個引數,則這幾個引數將用來計算段的
INITIAL值,此時段的INITIAL值將不是設定值,而是透過計算得到。
如果LMT表空間不是UNIFORM,則:
EXP-5
create table test
(
a number
)
storage
(
initial 100k
next 100k
minextents 4
pctincrease 100
);
該表所在表空間為本地管理的,這個表的實際的INITIAL為832K。
在LMT下,extent都是以64K為基本單位的,其初始的extent一般為64K。在本例中,MINEXTENTS為4,則前四個extent的實際大小分別為:
104K-104K-208K-416K(PCTINCREASE 100,參考DICT下INITIAL的計算方法)
所
以,本例中INITIAL=104+104+208+416=832K。由於LMT下的EXTENT最小單位是64K,832剛好是64的倍數,所以
oracle分配13個extents給INITIAL;如果計算得到的INITIAL不是64K的整數倍,oracle會按一下方法計算並分配:
CEIL(INITIAL/64)*64
如果LMT是UNIFORM(UNIT SIZE=16K),則
EXP-6
create table test
(
a number
)
tablespace t_uniform
storage
(
initial 100k
next 100k
minextents 4
);
則INITIAL=104+104+104+104=416,建表時oracle分配了26個extent給test
LMT下,PCTINCREASE, NEXT引數將不復存在(不能修改)
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017474/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LMT和DMT下儲存引數的異同(轉)
- LMT下表儲存引數的使用
- dmt、lmt、mssm,assm的一點總結!SSM
- Oracle表空間的管理方式(LMT、DMT)--本地和字典管理Oracle
- 【轉】Mysql兩種儲存引擎的異同【MyISAM和InnoDB】MySql儲存引擎
- [zt] dmt、lmt、mssm, assm (SEGMENT SPACE MANAGEMENT AUTO) 的一點總結SSM
- mysql儲存過程的引數MySql儲存過程
- dos下呼叫帶輸出引數的儲存過程儲存過程
- SQL Server-儲存過程(Procedure),帶入引數和出引數SQLServer儲存過程
- PHP 編譯引數儲存PHP編譯
- Solarwinds部分引數儲存
- 手工指定CHANNEL與設定PARALLELISM引數的異同以及FILESPERSET引數的作用Parallel
- 雲上大資料儲存:探究 JuiceFS 與 HDFS 的異同大資料UI
- SQL Server系統儲存過程和引數示例SQLServer儲存過程
- tcbs_批量儲存過程_輸出引數out與異常的關係儲存過程
- 【儲存】megacli 常用引數介紹
- 帶輸出引數的儲存過程儲存過程
- Oracle9i tablespace空間分配中initial_extent與LMT,DMTOracle
- SQL Server系統儲存過程和引數總結SQLServer儲存過程
- Laravel同時接收路由引數和查詢字串中的引數Laravel路由字串
- 動態呼叫帶引數的儲存過程儲存過程
- AIX HACMP使用EMC儲存時的引數修改AIACM
- 使用帶有輸出引數的儲存過程儲存過程
- dependencies 和 devDependencies 的異同dev
- Tensorflow儲存神經網路引數有妙招:Saver和Restore神經網路REST
- Oracle帶輸入輸出引數的儲存過程Oracle儲存過程
- SQLSERVER儲存過程如何寫帶引數的遊標SQLServer儲存過程
- MySQL 儲存過程引數IN OUT INOUT對比MySql儲存過程
- Java呼叫儲存過程(帶輸出引數)Java儲存過程
- oracle儲存過程將引數字串分割sqlOracle儲存過程字串SQL
- oracle實驗記錄 (storage儲存引數(1))Oracle
- oracle實驗記錄 (storage儲存引數(2))Oracle
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- linux 下c/c++ 使用shell命令並加入引數、儲存結果LinuxC++
- 儲存過程的引數可以使用sql的函式儲存過程SQL函式
- HTTP 和 HTTPS 的異同HTTP
- 變數的儲存方式和生存期變數
- 檢視oracle資料庫例項引數的集中方式及其異同Oracle資料庫