concept方案物件-01
方案定義:
方案是一個邏輯資料結構集合,每個user都有一個同名的方案,方案物件就是方案下的物件,例如user使用者的user方案的下的table,view等物件。
方案schema和user區別
不過有點區別的是建立一個user後,當前user下沒有物件,此時並不存在此user的方案schema,方案誕生與user下的第一個物件的建立。
行的格式容量:
資料行片斷:
Oracle使用一個或多個行片斷儲存每一行資料。當一個資料塊可以容納一個資料行時(且表的列數小於256)此資料行就只用了一個資料行片斷。
當一個資料塊無法容納一條資料行時,oracle將使用多個行片斷儲存這一條資料行。
(大多數情況下,一條資料行一般只需要一條資料行片斷,儲存在一個資料塊內。)
行連結:
當需要多個行片斷儲存資料行,且資料行的行片斷位於不同的資料塊內,也就發生所謂的行連結。(多個片斷,且儲存在不同資料塊)
提到了行連結就有行遷移:oracle concept中data block extent segment中就提到了。
行連結是塊內資料更新而無法存放在一個資料塊內,此時就在原資料塊內儲存一個資料塊的指標,而原資料行的rowid不會改變。
行遷移是插入新的資料到資料塊時,資料塊無法容納,就此資料行儲存在段內的一個資料鏈chain中。
塊內連結:
當一個表超過255列時,第255列之後的資料將作為一個新的行片斷儲存在同一資料塊內,稱為塊內連結。多個行片斷進行塊內連結,使用行片斷的rowid進行連結(前面的blog中提到了rowid由18位構成,前6位是資料物件編號對應於dba_objects中的data_object_id,中間3位是檔案編號,然後接下來的6位是資料塊編號,最後3位是行編號。)
(多個片斷,但儲存在同一資料塊)
塊內行遷移的I/O:
塊內行遷移和行遷移不同,前者對I/O沒有帶來額外的開銷,後者由於訪問了更多的資料塊,對I/O會帶來額外的開銷
行片斷結構:
行片斷包含一個行頭,資料行的部分或全部資料列長和列值。(行內某一列的資料也有可能跨越多個行片斷,甚至多個資料塊,concept提到的這點現在還沒有很好的說明)
行頭位於資料行之前,包含:行管理開銷,行片斷rowid(如果有連結) 列數 簇鍵(簇表),行頭資訊之後是各列的列長和列值。
資料行中的列值為null的儲存:
為了節約儲存空間,如果某列為null,oracle只儲存其列長為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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NEW CONCEPT ENGLISH 51 - 60
- 物件導向-2021-01-04-01物件
- 01 #### `__new__` ,構造方法,建立物件構造方法物件
- python物件導向練習題01Python物件
- BACON: Supercharge Your VLM with Bag-of-Concept Graph to Mitigate HallucinationsMIT
- Java基礎01 從HelloWorld到物件導向Java物件
- C++霧中風景18:C++20, 從concept開始C++
- mybatis新增物件自動生成uuid方案MyBatis物件UI
- OSS物件儲存的全球加速方案物件
- 請問測試中 Gauge 的 [Concept] 怎麼翻譯,怎麼理解。
- SciTech-Theory-Concept:natural+common -> Principle:process+research+investment -> Definition -> Theory -> Axiom
- java bean 物件屬性複製框架BeanMapping-01-入門案例JavaBean物件框架APP
- 學員會診之01:那些典型的物件導向錯誤物件
- java8學習筆記01 Optional物件替代Null判斷Java筆記物件Null
- .NET無侵入式物件池解決方案物件
- iOS面試題整理01---- Objective-C 物件相關問題iOS面試題Object物件
- JAVA學習線路:day01物件導向(繼承、抽象類)Java物件繼承抽象
- 物件拷貝 - 優雅的解決方案 Mapstruct物件Struct
- SCUT01線上協作白板技術解決方案
- 自動生成 java 測試 mock 物件框架 DataFactory-01-入門使用教程JavaMock物件框架
- # 095 01 Android 零基礎入門 02 Java物件導向 02 Java封裝 01 封裝的實現 03 # 088 01 Android 零基礎入門 02 Java物件導向 02 Java封裝 03 封裝總結 01 封裝知識點總結AndroidJava物件封裝
- 2021-01-01
- 2021-01-01 605
- 全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念物件程式設計
- 給妹子講python-S01E11賦值與物件拷貝機制分析Python賦值物件
- 01
- 私有化輕量級持續整合部署方案--01-環境配置(上)
- 私有化輕量級持續整合部署方案--01-環境配置(下)
- GoCN每日新聞(2020-01-01)Go
- day01-SpringMVC基本介紹-01SpringMVC
- Chrome 瀏覽器外掛獲取網頁 window 物件(方案三)Chrome瀏覽器網頁物件
- Numpy 01
- 01 序言
- day 01
- Rust 01Rust
- JVM—01JVM
- 【cuda】- 01
- AWS - [01]
- 01 Tree