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