達夢體系結構學習

1. 數據庫由一個或多個表空間組成;

2. 每個表空間由一個或多個數據文件組成;

3. 每個數據文件由一個或多個簇組成;

4. 段是簇的上級邏輯單元,一個段可以跨多個數據文件;

5. 簇由磁盤上連續的頁組成,一個簇總是在一個數據文件中;

6. 頁是數據庫中最小的分配單元,也是數據庫中使用的最小的IO單元。 

 

 

 

數據頁也稱爲數據塊,默認8k

頁頭

頁類型、頁地址

 

數據

 

 

存放數據

 

空閒空間

空閒空間

行偏移數組

空間佔用情況

 

FILLFACTOR參數:指定一個數 據頁初始化後插入數據時最大可以使用空間的百分比 (表/索引)。

目的:設置 FILLFACTOR 參數的值,是爲了指定數據頁中的可用空間百分比(FILLFACTOR) 和可擴展空間百分比(100-FILLFACTOR) ,保留一定的空間,以防止在今後的更新操作中增加列或者修改變長列的 長度時,引起數據頁的頻繁分裂 。

 

 

簇由同一個數據文件中 16 個(默認)或 32 個連續的數據頁組成 。

頁的默認大小爲8k,簇的默認大小爲8k*16=128k

分配簇:

當創建一個表/索引的時候,DM 爲表/索引的數據段分配至少一個 簇 ,同時數據庫會自動生成對應數量的空閒數據頁,當初始分配的空間用完時DM數據庫會自動擴展。當DM數據庫的表空間爲新的簇分配空閒空間時,首先

1.在表空間按文件從小到大(文件號還是文件大小?)的順序在各數據文件中查找可用的空閒簇進行分配,

2.如果沒有空閒簇,則在各數據文件中查找可用的空閒空間,格式化後分配,

3.如果沒有空閒空間,則擴充數據文件

釋放簇:

數據表空間:在drop對象前,數據段至少有1個簇不會被回收,刪除時也會保留至少1個簇。

drop語句會回收全部簇被其他對象使用

臨時表空間:dm數據庫會自動釋放臨時段,但是臨時表空間所佔磁盤不會減少。SF_RESET_TEMP_TS清理臨時表空間磁盤佔用

回滾表空間:定期檢查

 

段由簇組從,段不一定來自一個數據文件,簇一定來自一個數據文件。與oracle段類似

 

表空間

1. SYSTEM表空間存放了有關DM數據庫的字典信息,用戶不能在SYSTEM表空間創 建表和索引。

2. ROLL表空間完全由DM數據庫自動維護,用戶無需干預。該表空間用來存放事務運 行過程中執行DML 操作之前的值,從而爲訪問該表的其他用戶提供表數據的讀一致 性視圖。

3. MAIN表空間在初始化庫的時候,就會自動創建一個大小爲128M的數據文件MAIN.DBF。在創建用戶時,如果沒有指定默認表空間,則系統自動指定MAIN 表 空間爲用戶默認的表空間。

4. TEMP表空間完全由DM數據庫自動維護。當用戶的SQL語句需要磁盤空間來完成 某個操作時,DM 數據庫會從TEMP 表空間分配臨時段。如創建索引、無法在內存中 完成的排序操作、SQL 語句中間結果集以及用戶創建的臨時表等都會使用到TEMP 表空間。

5. HMAIN表空間屬於HTS表空間,完全由DM數據庫自動維護,用戶無需干涉。當用 戶在創建HUGE 表時,未指定HTS 表空間的情況下,充當默認HTS 表空間。

表空間總結:

達夢表空間管理與oracle類似

System=system Roll=undo main=users temp=temp hmain=?

sysdba默認表空間爲main(users)

 

達夢數據庫跟oracle太像了,命令基本都是一模一樣的

再往下看感覺沒啥意思

 

參考文檔:

《DM7系統管理員手冊》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章