程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2表空間管理

DB2表空間管理

編輯:DB2教程

DB2表空間應該如何管理呢?這是很多人都提到過的問題,在解決這個問題之前,先讓我們了解一下什麼是DB2表空間:

DB2表空間

數據庫中的所有數據都存儲在許多表空間中。可以認為表空間是孩子而數據庫是其父母,其中表空間孩子)不能有多個數據庫父母)。由於表空間有不同用途,因此根據它們的用途和管理方式將它們分類。根據用途有五種不同的表空間:

目錄表空間
每個數據庫只有一個目錄表空間,它是在發出 CREATE DATABASE 命令時創建的。目錄表空間被 DB2 命名為 SYSCATSPACE,它保存了系統目錄表。每當創建數據庫時,都會創建這個表空間。
常規表空間
常規表空間保存所有永久的數據,包括常規的表和索引。它還可以保存諸如 LOBLarge Object)之類的長數據,除非這些數據顯式地存儲在長表空間中。如果某些表空間是用於非分區表的數據庫管理的空間Database Managed Space,DMS)或者用於分區表的系統管理的空間,則可以將表及其索引分別放到單獨的常規表空間中。我們將在 表空間管理 小節描述 DMS 和 SMS。目錄表空間是常規表空間的一個例子。缺省情況下,目錄表空間是數據庫創建期間所創建的唯一一個常規表空間。
長表空間
長表空間像常規表空間一樣存儲永久數據,包括 LOB。這種表空間必須是 DMS,這也是默認類型。長表空間中創建的表比常規表空間中的表大。大型表可支持每個數據頁超過 255 行,從而提高數據頁上的空間利用率。當創建數據庫時,DB2 創建一個名為 USERSPACE1 的長表空間。
系統臨時表空間
系統臨時表空間用於存儲 SQL 操作比如排序、重組表、創建索引和連接表)期間所需的內部臨時數據。每個數據庫必須至少有一個系統臨時表空間。隨數據庫創建的缺省系統臨時表空間名為 TEMPSPACE1。
用戶臨時表空間
用戶臨時表空間存儲已聲明的全局臨時表。創建數據庫時不存在用戶臨時表空間。至少應當創建一個用戶臨時表空間,以允許定義已聲明的臨時表。用戶臨時表空間是可選的,缺省情況下不創建。

DB2表空間管理

可以用兩種不同的方式管理DB2表空間:

系統管理的空間SMS)
操作系統管理 SMS 表空間。容器被定義成常規操作系統文件,並且是通過操作系統調用訪問的。這意味著以下任務全部由常規操作系統功能來處理:
I/O 緩沖
根據操作系統慣例分配空間
必要時自動擴展表空間
但是,不能從 SMS 表空間刪除容器,並且僅限於將新的容器添加到分區的數據庫。前一節中所說明的那三個缺省表空間都是 SMS。

數據庫管理的空間DMS)
DMS 表空間是由 DB2 管理的。可以將容器定義成文件在創建表空間時將把給定的大小全部分配給它們)或設備。分配方法和操作系統允許多少 I/O,DB2 就可以管理多少 I/O。可以通過使用 ALTER TABLESPACE 命令來擴展容器。還可以釋放未使用的那部分 DMS 容器從 V8 開始)。 
 
 

DB2管理頁大小的限制

DB2環境變量管理的策略選擇

幾個簡單的DB2操作語句

DB2隔離級別之讀穩定性

DB2隔離級別--可重復讀

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved