探索oracle_之表空間01_概念
表空間是資料庫系統中邏輯的一部分,通常乙個資料庫包含了乙個或多個表空間,乙個表空間同時又包含了乙個或多個資料檔案。當然乙個資料檔案只能同時屬於乙個表空間,且乙個表空間只能同時屬於乙個資料庫,結構如圖:
在oracle10g中最少有兩個系統表空間:
乙個是system表空間:system表空間用來儲存資料庫系統中自身的資料字典,儲存過程,函式,包,和觸發器,用來記錄資料庫的結構和狀態。我們所做的任何操作修改操作都有可能會改變system表空間的內容。比如建立表空間,新增資料檔案,建立刪除表等等。
另外乙個是sysaux表空間: sysaux表空間是10g以後出來的乙個新錶空間是作為system的輔助表空間,像許多資料庫的輔助工具和可選元件及其物件儲存在sysaux表空間,它是oracle工具及可選元件的預設表空間,例如oem等工具。
當然還有其它的一些系統表空間,在此我們娓娓道來;
user表空間: 用來存放使用者資料資訊的。
undo表空間: 用於存放事物回滾和撤銷產生的舊undo塊。
temp表空間:存放排序產生臨時資料,資料庫重啟後,temp表空間將會清空。
表空間的三種狀態
聯機狀態:要保證表空間的可讀性首先必須使表空間在聯機狀態下,這樣表空間內的資料才可是可讀的。
離線狀態:使表空間進入離線狀態一般是為了使資料庫的某一表空間臨時失效,其它表空間正常執行,再者就是對錶空間維護,一致性備份,資料庫公升級等 (一般很少離線)
讀寫狀態:讀寫狀態表空間同樣必須是在聯機狀態下的,這個時候的表空間是可以做任意操作的。
注意:system表空間必須是聯機讀寫狀態,因為資料庫的啟動和關閉都將訪問和更改system表空間的內容
表空間型別
永久表空間:用來存放永久資料的,例如系統表空間,使用者表空間等,其特點是:資料庫被關閉後,資料仍然保留,不會照成資料丟失。
臨時表空間:有點類似於作業系統的記憶體,其作用就是建立乙個臨時的資料處理區域,比如大量的查詢和排序操作都將用到臨時表空間。而且為了提高效率一般都會對臨時表空間進行分組管理。
表空間管理方式:
字典管理:是資料庫一直以來到8i的表空間預設管理方式,它是將各個區的資訊都儲存在資料字典裡面,通過資料字典來記錄每個區的使用情況。需要執行遞迴sql來得到更多空間,而且對字典的更新
必須是序列的,他們不可能同時進行,開銷會很大,所以在9i以後要盡量避免。
本地管理:在oracle 9i中新推出來的一種表空間管理方式,也是9i以後的預設表空間管理方式。所謂本地管理,是指oracle不再利用資料字典表來記錄oracle表空間裡面的區的使用狀況,而是在每個表空間的資料檔案的頭部加入了乙個點陣圖區,在其中記錄每個區的使用狀況。每當乙個區被使用,或者被釋放以供重新使用時,oracle都會更新資料檔案頭部的這個記錄,反映這個變化。其有點是減少對資料字典訪問所照成的衝突,其次就是減少了遞迴空間的管理,採用自動管理的extents大小或統一的extents大小,同時也不會產生回退資訊,不需要合併相鄰的剩餘表空間;減少了空間碎片,對臨時表空間提供了更好的管理。
注意:
1、 system表空間如果是採用的本地管理方式,所建立的使用者表空間將不能採用字典管理方式。反過來則可以。
2、本地管理方式和字典管理方式是可以進行切換的,但建議在切換之前最好對相應的表空間進行備份後再切換
表空間是資料庫系統中邏輯的一部分,通常乙個資料庫包含了乙個或多個表空間,乙個表空間同時又包含了乙個或多個資料檔案。當然乙個資料檔案只能同時屬於乙個表空間,且乙個表空間只能同時屬於乙個資料庫。
在oracle10g中最少有兩個系統表空間:
乙個是system表空間:system表空間用來儲存資料庫系統中自身的資料字典,儲存過程,函式,包,和觸發器,用來記錄資料庫的結構和狀態。我們所做的任何操作修改操作都有可能會改變system表空間的內容。比如建立表空間,新增資料檔案,建立刪除表等等。
另外乙個是sysaux表空間: sysaux表空間是10g以後出來的乙個新錶空間是作為system的輔助表空間,像許多資料庫的輔助工具和可選元件及其物件儲存在sysaux表空間,它是oracle工具及可選元件的預設表空間,例如oem等工具。
當然還有其它的一些系統表空間,在此我們娓娓道來;
user表空間: 用來存放使用者資料資訊的。
undo表空間: 用於存放事物回滾和撤銷產生的舊undo塊。
temp表空間:存放排序產生臨時資料,資料庫重啟後,temp表空間將會清空。
表空間的三種狀態
聯機狀態:要保證表空間的可讀性首先必須使表空間在聯機狀態下,這樣表空間內的資料才可是可讀的。
離線狀態:使表空間進入離線狀態一般是為了使資料庫的某一表空間臨時失效,其它表空間正常執行,再者就是對錶空間維護,一致性備份,資料庫公升級等 (一般很少離線)
讀寫狀態:讀寫狀態表空間同樣必須是在聯機狀態下的,這個時候的表空間是可以做任意操作的。
注意:system表空間必須是聯機讀寫狀態,因為資料庫的啟動和關閉都將訪問和更改system表空間的內容
表空間型別
永久表空間:用來存放永久資料的,例如系統表空間,使用者表空間等,其特點是:資料庫被關閉後,資料仍然保留,不會照成資料丟失。
臨時表空間:有點類似於作業系統的記憶體,其作用就是建立乙個臨時的資料處理區域,比如大量的查詢和排序操作都將用到臨時表空間。而且為了提高效率一般都會對臨時表空間進行分組管理。
表空間管理方式:
字典管理:是資料庫一直以來到8i的表空間預設管理方式,它是將各個區的資訊都儲存在資料字典裡面,通過資料字典來記錄每個區的使用情況。需要執行遞迴sql來得到更多空間,而且對字典的更新
必須是序列的,他們不可能同時進行,開銷會很大,所以在9i以後要盡量避免。
本地管理:在oracle 9i中新推出來的一種表空間管理方式,也是9i以後的預設表空間管理方式。所謂本地管理,是指oracle不再利用資料字典表來記錄oracle表空間裡面的區的使用狀況,而是在每個表空間的資料檔案的頭部加入了乙個點陣圖區,在其中記錄每個區的使用狀況。每當乙個區被使用,或者被釋放以供重新使用時,oracle都會更新資料檔案頭部的這個記錄,反映這個變化。其有點是減少對資料字典訪問所照成的衝突,其次就是減少了遞迴空間的管理,採用自動管理的extents大小或統一的extents大小,同時也不會產生回退資訊,不需要合併相鄰的剩餘表空間;減少了空間碎片,對臨時表空間提供了更好的管理。
注意:
1、 system表空間如果是採用的本地管理方式,所建立的使用者表空間將不能採用字典管理方式。反過來則可以。
2、本地管理方式和字典管理方式是可以進行切換的,但建議在切換之前最好對相應的表空間進行備份後再切換
Oracle 表空間的概念
表空間 在資料庫系統中,儲存空間是較為重要的資源,合理利用空間,不但能節省空間,還可以提高系統的效率和工作效能。oracle 可以存放海量資料,所有資料都在資料檔案中儲存。而資料檔案大小受作業系統限制,並且過大的資料檔案對資料的訪問效能影響非常大。同時oracle 是跨平台的資料庫,oracle 資...
DBA Tablespace表空間的概念和管控
dba tablespace表空間的概念和管控 概念 一 摘要 我們知道oarcle資料庫真正存放資料的是資料檔案 data files oarcle表空間 tablespaces 實際上是乙個邏輯的概念,他在物理上是並不存在的,那麼把一組data files 捻在一起就成為乙個表空間 在oracl...
01揹包之空間優化
前言 上篇suibi寫到了01揹包的二維陣列做法 不知道的戳這 可是空間太大了,如果出題人有意,那你就 怎麼辦呢?那咱們就用一維陣列來存吧。includeusing namespace std int bag,n,v 101 w 101 dp 1001 int main cout變數同上。同樣列舉每...