Oracle 堆組織表(HOT)
Oracle實際應用中,經常會用到table,對於table的研究自己之前並沒有過多的參與, 最近讀了一下tom的書後,對table又有了一點新的認識.
table在Oracle中被分為很多的類種,我們平時在create table時,最常用到的型別就是堆組織表了(HOT),那麼heap我們都知道是一種經典的資料結構,是一塊磁碟或記憶體的空間,那麼在應用上是按照一種顯示隨機的方式進行管理的,由於這樣的特性致使使用者可能不能按照表中插入的順序來獲得表中的資料,除非在表中增加一個可以order by排序的列,那麼在獲取資料的時候才有可能按照insert的順序來獲取. 其實可以用一句話來形容堆組織表就是對於表中的block,只要是能夠儲存資料,那麼就會把新資料存放在可用空間裡面而可能完全忽略了實際insert的順序.因此在做FTS時,oracle會按照實際命中行的順序來獲取資料,而不是按照insert的順序.所以我們可以說HOT表是一種無序的資料集合:
下面看一個小實驗:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Productio
NLSRTL Version 10.2.0.3.0 - Production
SQL> show parameter db_block_size;
NAME TYPE VALUE
------------------------------------ ----------- --------------------------
db_block_size integer 8192
SQL> create table t
2 (a int,
3 b varchar2(4000) default rpad('*',4000,'*'),
4 c varchar2(3000) default rpad('*',3000,'*')
5 );
Table created.
--對於預設的create table方式生成的表型別是HOT.
SQL> insert into t(a) values(1);
1 row created.
SQL> insert into t(a) values(2);
1 row created.
SQL> insert into t(a) values(3);
1 row created.
SQL> select a from t;
A
----------
1
2
3
SQL> delete from t where a=2;
1 row deleted.
SQL> select a from t;
A
----------
1
3
SQL> insert into t(a) values(4);
1 row created.
SQL> select a from t;
A
----------
1
4
3
另外在create table時相對於堆組織表來說有一些引數可以供我們參考:
對於ASSM有兩個重要選項,對於MSSM有四個重要選項:
Freelist:僅適用於MSSM,對於ASSM由於已經使用三級點陣圖的方式來管理segment,因此不適用於ASSM
PCTFREE: ASSM和MSSm都適用,表示為一個block中已存在的行在將來更新時預留出的一段空間.
PCTUSED: 僅適用於MSSM,當塊中的空閒程度>(1-PCTUSED)時候,這個block將會重新回到freelist上來.
INITRANS: ASSM和MSSM都適用,表示為block分配的初始slot數目.預設是2,每一個slot佔據的空間是23-24個位元組
這裡還需要強調的是,單獨儲存在LOB Segment中的資料是不使用PCTFREE/PCTUSED這些引數的.而是以另外一種方式來進行管理.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-230932/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle堆組織表的索引和索引組織表Oracle索引
- oracle 索引組織表Oracle索引
- Oracle 索引組織表(IOT)Oracle索引
- ORACLE索引組織表討論Oracle索引
- oracle iot索引組織表(一)Oracle索引
- oracle iot索引組織表(二)Oracle索引
- 索引組織表(Index Organizied Table)索引Index
- 索引組織表(index organized table ,IOT)索引IndexZed
- oracle hot blockOracleBloC
- Oracle DBA的資源和組織Oracle
- 索引組織表上建立BITMAP索引(三)索引
- 索引組織表上建立BITMAP索引(二)索引
- 索引組織表上建立BITMAP索引(一)索引
- 在OLTP系統使用索引組織表IOT索引
- 資料庫表,索引(索引組織表,聚簇表,聚簇索引,)資料庫索引
- EXCEL破冰 - 如何為透視表組織資料Excel
- oracle 線上重組表Oracle
- 流程型組織
- 關於通過聚集索引以及堆來對比資料表組織結構-SQLServer最優實踐 的一點看法索引SQLServer
- 組織css程式碼CSS
- puppet組織架構架構
- SD 組織資料
- 組織的紀律
- oracle臨時表空間組Oracle
- 捐智慧愛心公益組織
- AWD比賽組織指南
- Day 582:遊戲型組織遊戲
- 組織知識的方法
- 程式碼模型組織方式模型
- rust 模組組織結構Rust
- 組織程式和資料
- 組織分析(1)——介紹
- 如何建立流程型組織
- CUDA儲存器組織
- 系統的模組組織
- 企業IT組織的治理
- 新的組織結構
- google chrome去除組織策略GoChrome