DB2表空間


DB2表空間是一種儲存結構,包含表,索引,大物件和長資料。 它可用於將資料庫中的資料組織到邏輯儲存組中,該邏輯儲存組與儲存在系統上的資料相關。

表空間儲存在資料庫分割區組中。

資料庫中表空間的優點

表空間提供了以下幾個優勢:

  • 可恢復性:表空間使備份和恢復操作更加方便。 使用單個命令,可以備份或還原表空間中的所有資料庫物件。
  • 自動儲存管理:資料庫管理器根據需要建立和擴充套件容器。
  • 記憶體利用率:單個緩衝池可以管理多個表空間。可以將臨時表空間分配給它們自己的緩衝池,以提高排序或連線等活動的效能。

容器

表空間由一個或多個容器(container )組成。容器可以是目錄名稱,裝置名稱或檔案名。

在資料庫中,單個表空間可以在同一物理儲存裝置上具有多個容器。 如果使用自動儲存表空間選項建立表空間,則資料庫管理器將自動處理容器的建立和管理。 如果未使用自動儲存表空間選項建立,則需要自己定義和管理容器。

預設表空間

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

  • 目錄表空間
  • 使用者表空間
  • 臨時表空間

    目錄表空間:
    它包含資料庫的系統目錄表。 它被命名為SYSCATSPACE,無法刪除。
    使用者表空間: 此表空間包含使用者定義的表。 在資料庫中,有一個預設的使用者表空間,名稱為USERSPACE1。 如果在建立表時沒有為表指定使用者定義的表空間,則資料庫管理器會選擇預設的使用者表空間。
    臨時表空間: 臨時表空間包含臨時表資料。 此表空間包含系統臨時表空間或使用者臨時表空間。

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

表空間和儲存管理:

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

可以使用以下三種型別的託管空間:

系統管理空間(SMS):作業系統的檔案系統管理器分配和管理儲存表的空間。 儲存空間按需分配。 該模型由表示資料庫物件的檔案組成。 對於使用者定義的表空間,在DB2 V10.1中不推薦使用此表空間型別,並且不會為目錄和臨時表空間不推薦使用此表空間型別。

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

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

頁面,表和表空間大小:

臨時DMS和自動儲存表空間,使用者用資料庫選擇的頁面大小決定了表空間大小的最大限制。 對於表SMS和臨時自動儲存表空間,頁面大小限制了表本身的大小。 頁面大小可以是:4kb8kb16kb32kb