資料表建立引數介紹(三)
PART2、儲存結構相關引數
在storage關鍵字裡,包括了儲存上對資料物件空間分配的一些重要引數。其中的核心內容控制了Oracle如何給這個資料表物件分配空間。
在這裡,我們需要說明一下資料表空間Tablespace空間管理的機制問題。storage關鍵字裡面涉及到引數取值通常來自我們使用表空間的設定。資料表邏輯上是一種段物件segment object(Data Segment)。Data Segment的空間管理是透過Tablespace表空間進行管理的。
在管理空閒空間和分配空間的問題上,有字典管理方式(Dictionary Management Tablespace DMT)和本地管理方式(Locally Management Tablespace LMT)。(宣告:本部分參考陳吉平老師的《Oracle——高可用環境》)
在Oracle8i以前,對空閒空間是採用資料字典DML的方式進行管理。兩個底層資料字典UET$(已經使用過的空間)和FET$(未使用的空間)。當分配空間的時候,Oracle使用一系列遞迴的SQL來獲取空閒空間。這種結構存在一些潛藏的問題。
首先是並行操作引起的效能瓶頸。在尋找空間空間和分配空間的時候,Oracle對兩個資料字典表進行遞迴SQL呼叫和更新。在DML操作頻繁、空間分配管理的環境下,資料字典進行序列化操作,容易形成效能瓶頸。
第二、配合其他引數進行空間分配,容易形成過多的空間碎片。特別是在分配大小不一致的情況下。
最後,每個Segment所使用的所有extents資訊都儲存在資料字典中,如果資料表很大,字典資料表中記錄數目也就相對較多。那麼,進行批次的刪除或者資料表drop,會引起長時間的資料表更新操作。長時間的序列化更新操作進一步就會影響系統整體的空間管理分配能力。
鑑於這些問題,Oracle在8i之後,推出了本地管理表空間(LMT)機制,逐漸取代DMT方法。簡單的說,就是將空閒空間管理職責,由統一的資料字典管理下放到檔案級別,讓檔案自己管理空閒空間、分配空間。
在LMT機制裡,Oracle將儲存資訊儲存在檔案的檔案頭部。在檔案頭上,存在一個點陣圖形式的儲存資訊段,其中記錄了該檔案空閒空間管理資訊。這樣,在表空間進行物件空間分配的時候,只需要進行檔案級別的資源協調,不需要訪問專門的資料字典。這樣也就避免了空閒資源帶來的爭用。
簡單介紹完DMT和LMT,我們回到storage引數設定上。
ü initial引數
initial引數的含義是在建立這個物件(資料表)時,分配多大的空間。也就是初始段segment大小。
在我們提取出的資料表資訊中,initial引數設定為65536。系統的塊為8K,也就是8*1024=8192byte空間。initial為8*8K,也就是說,初始段空間分配8個資料塊,也就是64KB。
雖然initial引數是DMT時代確定的引數選項,但是在LMT機制下該引數依然有效,而且是必需的。Oracle是不能確定初始段空間大小。
ü NEXT引數
在LMT進行表空間管理下,NEXT引數子句是過時的。NEXT表示分配下一個空間片段的大小。在我們這個程式碼例子中,next=1048576,為1MB空間。
為了消除儲存中的碎片現象,目前我們都是透過設定統一大小uniform. size的extent空間。也就是每個分割槽的大小都是一致的。
ü Minextents和Maxextents引數
這兩個引數的作用是比較明顯。資料物件在建立開始分配分割槽的個數和最大可分配分割槽的個數資訊。
SQL> create table t (id number);
Table created
SQL> select bytes, blocks, extents, min_extents, max_extents from user_segments where segment_name='T';
BYTES BLOCKS EXTENTS MIN_EXTENTS MAX_EXTENTS
---------- ---------- ---------- ----------- -----------
65536 8 1 1 2147483645
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-688507/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料表建立引數介紹(一)
- 資料表建立引數介紹(二)
- 資料表建立引數介紹(四)
- docker 引數介紹Docker
- gcc 常用引數介紹GC
- HRMS Function 引數介紹Function
- Oracle 各版本引數/隱藏引數 介紹Oracle
- MongoDB啟動引數介紹MongoDB
- PostgreSQLGUC引數級別介紹SQL
- margin引數簡單介紹
- margin 引數簡單介紹
- ipchains引數介紹(轉)AI
- MySQL資料備份多種引數介紹及簡單示例MySql
- Bootstrap Blazor 元件介紹 Table (三)列資料格式功能介紹bootBlazor元件
- Oracle expdp impdp dump引數介紹Oracle
- eclipse 啟動引數介紹Eclipse
- 【儲存】megacli 常用引數介紹
- javascript bind()第一個引數以後引數介紹JavaScript
- 【DATAGUARD】Oracle21c Dataguard建立注意事項及主要引數介紹Oracle
- Oracle表空間建立引數解析Oracle
- 詳解Oracle建立表的引數Oracle
- Oracle 靜態引數與動態引數型別介紹Oracle型別
- mysql一些引數的介紹MySql
- ORACLE推導引數Derived Parameter介紹Oracle
- 【體系結構】Oracle引數介紹Oracle
- oracle 塊基本引數介紹(英文) (zt)Oracle
- Oracle sqlplus prelim 引數介紹OracleSQL
- MySQL Key分割槽表建立方法介紹MySql
- MT7682晶片手冊資料, MT7682處理器引數介紹晶片
- Oracle 表空間 建立引數 說明Oracle
- ECharts資料圖表使用介紹 超詳細Echarts
- 帶你入坑大資料(三) --- MapReduce介紹大資料
- 大資料分析三大實用工具介紹!大資料
- CSS 建立介紹CSS
- mysqldump中skip-tz-utc引數介紹MySql
- ORACLE初始化引數檔案介紹Oracle
- linux的vm相關引數介紹Linux
- Oracle 優化引數 optimizer_mode 介紹Oracle優化