DB2 - 表空間



本章詳細介紹了表空間。

Tablespaces

介紹

表空間是一種儲存結構,它包含表、索引、大物件和長資料。它可以用於將資料庫中的資料組織到邏輯儲存組中,這與資料在系統上的儲存位置相關。這些表空間儲存在資料庫分割槽組中。

表空間在資料庫中的好處

表空間在資料庫中具有多種好處,如下所示:

可恢復性:表空間使備份和恢復操作更加方便。使用單個命令,您可以備份或恢復表空間中的所有資料庫物件。

自動儲存管理:資料庫管理器根據需要建立和擴充套件容器。

記憶體利用率:單個緩衝池可以管理多個表空間。您可以將臨時表空間分配到它們自己的緩衝池,以提高排序或連線等活動的效能。

容器

表空間包含一個或多個容器。容器可以是目錄名、裝置名或檔名。在一個數據庫中,單個表空間可以在同一個物理儲存裝置上擁有多個容器。如果表空間是使用自動儲存表空間選項建立的,則容器的建立和管理由資料庫管理器自動處理。如果它不是使用自動儲存表空間選項建立的,則需要自行定義和管理容器。

預設表空間

建立新資料庫時,資料庫管理器會為資料庫建立一些預設表空間。這些表空間用於儲存使用者資料和臨時資料。每個資料庫必須至少包含三個表空間,如下所示:

  1. 目錄表空間
  2. 使用者表空間
  3. 臨時表空間

目錄表空間:它包含資料庫的系統目錄表。它名為SYSCATSPACE,不能刪除。

使用者表空間:此表空間包含使用者定義的表。在一個數據庫中,我們有一個預設的使用者表空間,名為USERSPACE1。如果您在建立表時未為表指定使用者定義的表空間,則資料庫管理器會為您選擇預設的使用者表空間。

臨時表空間:臨時表空間包含臨時表資料。此表空間包含系統臨時表空間或使用者臨時表空間。

系統臨時表空間儲存資料庫管理器在執行排序或連線等操作時所需的臨時資料。資料庫必須至少有一個系統臨時表空間,其名稱為TEMPSPACE1。它在建立資料庫時建立。使用者臨時表空間儲存來自表的臨時資料。它使用DECLARE GLOBAL TEMPORARY TABLE或CREATE GLOBAL TEMPORARY TABLE語句建立。此臨時表空間不是在資料庫建立時預設建立的。

表空間和儲存管理

表空間可以以不同的方式設定,具體取決於您希望如何使用它們。您可以設定作業系統來管理表空間分配,您可以讓資料庫管理器分配空間,或者您可以為您的資料選擇表空間的自動分配。

以下三種類型的受管理空間可用:

系統管理空間 (SMS):作業系統的檔案系統管理器分配和管理表儲存所在的空間。儲存空間按需分配。此模型由表示資料庫物件的檔案組成。此表空間型別在 10.1 版中已棄用(對於使用者定義的表空間),但目錄和臨時表空間除外。

資料庫管理空間 (DMS):資料庫伺服器控制儲存空間。儲存空間根據您在建立 DMS 表空間時指定的容器定義預先分配在檔案系統上。從 10.1 修訂包 1 版開始,它已棄用(對於使用者定義的表空間),但系統表空間和臨時表空間除外。

自動儲存表空間:資料庫伺服器可以自動管理。資料庫伺服器根據資料庫中的資料建立和擴充套件容器。使用自動儲存管理,不需要提供容器定義。資料庫伺服器負責建立和擴充套件容器以利用分配給資料庫的儲存空間。如果您向儲存組新增儲存空間,則當現有容器達到其最大容量時,會自動建立新的容器。如果您想立即使用新新增的儲存空間,可以重新平衡表空間。

頁面、表和表空間大小

對於臨時 DMS 和自動儲存表空間,您為資料庫選擇的頁面大小決定了表空間大小的最大限制。對於表 SMS 和臨時自動儲存表空間,頁面大小會限制表本身的大小。頁面大小可以是 4KB、8KB、16KB 或 32KB。

表空間型別 4K 頁面大小限制 8K 頁面大小限制 16K 頁面大小限制 32K 頁面大小限制
DMS,非臨時自動儲存表空間常規 64G 128G 256G 512G
DMS,臨時 DMS 和非臨時自動儲存表空間大型 1892G 16384G 32768G 65536G
廣告
© . All rights reserved.