concept方案物件-01

dotaddjj發表於2011-10-26

方案定義:

方案是一個邏輯資料結構集合,每個user都有一個同名的方案,方案物件就是方案下的物件,例如user使用者的user方案的下的tableview等物件。

方案schemauser區別

不過有點區別的是建立一個user後,當前user下沒有物件,此時並不存在此user的方案schema,方案誕生與user下的第一個物件的建立。

行的格式容量:

資料行片斷:

Oracle使用一個或多個行片斷儲存每一行資料。當一個資料塊可以容納一個資料行時(且表的列數小於256)此資料行就只用了一個資料行片斷。

當一個資料塊無法容納一條資料行時,oracle將使用多個行片斷儲存這一條資料行。

(大多數情況下,一條資料行一般只需要一條資料行片斷,儲存在一個資料塊內。)

行連結:

當需要多個行片斷儲存資料行,且資料行的行片斷位於不同的資料塊內,也就發生所謂的行連結。(多個片斷,且儲存在不同資料塊)

提到了行連結就有行遷移:oracle conceptdata block extent segment中就提到了。

行連結是塊內資料更新而無法存放在一個資料塊內,此時就在原資料塊內儲存一個資料塊的指標,而原資料行的rowid不會改變。

行遷移是插入新的資料到資料塊時,資料塊無法容納,就此資料行儲存在段內的一個資料鏈chain中。

塊內連結:

當一個表超過255列時,第255列之後的資料將作為一個新的行片斷儲存在同一資料塊內,稱為塊內連結。多個行片斷進行塊內連結,使用行片斷的rowid進行連結(前面的blog中提到了rowid18位構成,前6位是資料物件編號對應於dba_objects中的data_object_id,中間3位是檔案編號,然後接下來的6位是資料塊編號,最後3位是行編號。)

(多個片斷,但儲存在同一資料塊)

塊內行遷移的I/O

塊內行遷移和行遷移不同,前者對I/O沒有帶來額外的開銷,後者由於訪問了更多的資料塊,對I/O會帶來額外的開銷

行片斷結構:

行片斷包含一個行頭,資料行的部分或全部資料列長和列值。(行內某一列的資料也有可能跨越多個行片斷,甚至多個資料塊,concept提到的這點現在還沒有很好的說明)

行頭位於資料行之前,包含:行管理開銷,行片斷rowid(如果有連結) 列數 簇鍵(簇表),行頭資訊之後是各列的列長和列值。

資料行中的列值為null的儲存:

為了節約儲存空間,如果某列為nulloracle只儲存其列長為0,列值不予儲存,如果一行末尾的列是null,則列長也不予以儲存。

(根據block的結構,block開銷部分由塊頭(塊的型別)表目錄和行目錄,每行還要佔用資料塊頭中行目錄區的2位元組空間)

列順序:

表內的所有資料行的列順序都是一致的,列的順序儲存通常和create table語句中定義順序一致,不過如果表含有資料型別為long的列,此列儲存在行的末尾。Alter add的列也儲存在行的末尾。(關於concepts中的long列會預設儲存在行的末尾還需要測試,是否要dump資料塊來測試,不過要透過資料塊可以看見的資訊還要進一步加深學習)

一般應該將null機率較大的列放在最後,節省空間。(建立包含資料型別long列時,上述方法無法節約空間)

表壓縮

Oracle的表壓縮compress壓縮data blcok內的重複值,壓縮的資料塊內同時也儲存瞭解壓縮的資訊(避免解壓縮帶來額外的I/O開銷)。壓縮的表的資料塊內重複值被儲存在塊頭的符號表內symbol table,而在該重複值實際發生位置儲存指向symbol table對應位置的指標,可以節約空間。

可以被壓縮的物件表和物化檢視(物化檢視也是一種表),而分割槽表可以執行壓縮分割槽和全部分割槽。同樣tablespace也有compress選項,如果表空間級別做了壓縮設定,那麼此表空間內的所有物件都是壓縮模式.

Alter table tablename compress

Create table a compress as select * from dba_objects

Create materialized view viewname compress

As select

Alter materialized view viewname compresss

資料壓縮使用與各種資料型別,但對於lob及基於log資料無效,表壓縮的工作主要在批次載入bulk load到資料庫時進行。表壓縮帶來的開銷此時最為顯著(這裡的批次載入和表壓縮是如何實現的)

常規的insert語句並不會壓縮資料,而更新update相對非壓縮錶慢些。所以壓縮表這些特性經常用到dw,那些不需要經常修改的資料。

以上文件摘自oracle conpects和自己的部分思考集結。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1055956/,如需轉載,請註明出處,否則將追究法律責任。

相關文章