DB2學習筆記 - 表空間
表空間的學習筆記。
[@more@]CREATE TABLESPACE
create tablespace語句給資料庫定義了一個新的表空間,分配container給tablespace。
表空間的定義和屬性儲存在catalog。
有2種不同的方式管理表空間
1. 系統管理的表空間(SMS)
可以使用到系統的IO快取。
不能從SMS表空間刪除container。
在SMS表空間內,每個container就是一個目錄。
如果一個表空間由多個容器建立,那麼db2將均衡寫入到各個容器的資料量。
所有表資料和索引都共享同一個表空間。
檔案大小有可能動態增長,其大小上限由容器數量、作業系統在檔案大小方面的限制,以及
作業系統在單個檔案大小的方賣的限制所決定。
當單個容器中的空間滿了之後,系統就認為該表空間已滿,即使其他容器中還有空間。
可以將新容器新增到還沒有任何容器的分割槽上的SMS中。
2. 資料庫管理的表空間(DMS)
container是檔案或者設別。
可以動態新增或者刪除container
可以自動均衡資料
可以動態擴充套件、減少容器的數量或者調整其大小。
表空間容量只受物理儲存器限制
表空間型別分為
1. regular
常規表空間儲存表資料和索引。它還可以儲存諸如大物件之類的長資料,除非這些資料顯式地儲存在長表空間中。
每個資料庫中必須至少有一個常規表空間。建立資料庫時指定該表空間的預設名為 USERSPACE1。
2. large
V8和V9的large型別有很大的不同
v8: 用來專門存放大物件的表空間
v9: 和regular唯一的不同是 regular 表空間的最大空間是64G(pagesize為4K),large表空間的最大容量是2T(pagesize為4K)
3. system temporary
系統臨時表空間用於儲存 SQL 操作(比如排序、重組表、建立索引和連線表)期間所需的內部臨時資料。
每個資料庫必須至少有一個系統臨時表空間。隨資料庫建立的系統臨時表空間的預設名為 TEMPSPACE1。
4. user temporary
使用者臨時表空間儲存已宣告的全域性臨時表。建立資料庫時不存在使用者臨時表空間。
至少應當建立一個使用者臨時表空間以允許定義已宣告的臨時表。使用者臨時表空間是可選的,預設情況下一個都不建立
頁大小(Page size)
定義表空間所使用的頁大小。所支援的大小為 4K、8K、16K 和 32K。頁大小根據下表限定了可放到表空間中的表的行長度和列數:
表 1.
頁大小 行大小限制 列數限制 最大容量
4 KB 4 005 500 64 GB
8 KB 8 101 1 012 128 GB
16 KB 16 293 1 012 256 GB
32 KB 32 677 1 012 512 GB
表空間最多可包含 16384 個頁,因此選擇較大的頁大小可以增加表空間的容量。
擴充套件塊大小(Extent size)
指定在跳到下一個容器之前將寫到當前容器中的頁數。
儲存資料時資料庫管理器反覆迴圈使用所有容器。
該引數只有在表空間中有多個容器時才起作用。
預取大小(Prefetch size)
指定當執行資料預取時將從表空間讀取的頁數。
預取操作在查詢引用所需的資料之前讀入這些資料,這樣一來查詢就不必等待執行 I/O 了。
當資料庫管理器確定順序 I/O 是適當的,並且確定預取操作可能有助於提高效能時,它就選擇預取操作。
比較好的做法是將 PREFETCHSIZE 值顯式地設定成表空間的 EXTENTSIZE 值與表空間容器數的乘積的倍數。
開銷(Overhead)和傳送速率(Transfer rate)
這些值用於確定查詢最佳化期間的 I/O 成本。
這兩個值的測量單位都是毫秒,而且它們應當分別是所有容器開銷和傳送速率的平均值。
開銷是與 I/O 控制器活動、磁碟尋道時間和旋轉延遲時間相關聯的時間。
傳送速率是將一個頁讀入記憶體所必需的時間量。它們的預設值分別是 24.1 和 0.9。可以根據硬體規格計算這些值。
通常應該將目錄表空間和系統臨時表空間作為 SMS 分配。
沒有必要擁有多個具有相同頁大小的臨時表空間,通常只需一個具有最大頁大小的臨時表空間就夠了。
一個頁上的行不能超過 255 個,因此具有較短行的表不能利用整個頁。
如果表很大,如果通常是順序訪問大量行(該表可能進行了群集),那麼比較大的頁大小會比較有效。
如果隨機訪問行,那麼較小的頁大小可以允許 DB2 更好地利用緩衝區,因為同樣的儲存區域可以容納更多頁。
RAID 裝置有它們自己的特殊考慮。
EXTENTSIZE 應該等於 RAID 條帶大小或者是它的倍數。
PREFETCHSIZE 應該等於 RAID 條帶大小乘以 RAID 並行裝置數(或者等於該乘積的倍數),這個值應該是 EXTENTSIZE 的倍數。
相關係統表:
SYSCAT.TABLESPACES
相關命令:
list tablespaces
list tablespace containers for [tablespace id]
相關引數:
DB2_PARALLEL_IO 可以在一個容器中啟用 I/O 並行性:
DB2_STRIPED_CONTAINERS=ON 可以將容器標記大小從一個頁更改成整個擴充套件塊,因此就能使表空間擴充套件塊和 RAID 條帶一致。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133835/viewspace-897320/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- go 學習筆記之工作空間Go筆記
- OpenCV 名稱空間學習筆記OpenCV筆記
- 【 PHP 學習筆記 】名稱空間PHP筆記
- [ PHP 學習筆記 ] 名稱空間PHP筆記
- oracle臨時表空間學習筆記 增刪改查Oracle筆記
- db2表空間DB2
- db2學習筆記DB2筆記
- DB2表空間增加DB2
- 機器學習-學習筆記(一) --> (假設空間 & 版本空間)及 歸納偏好機器學習筆記
- 【DB2 學習】在復原過程中重定義表空間DB2
- 【DB2學習】檢視一個資料的表空間詳情DB2
- TP5學習筆記一 名稱空間筆記
- SGI STL學習筆記(1):空間配置器(allocator)筆記
- 10.管理UNDO表空間.(筆記)筆記
- 表空間傳輸讀書筆記筆記
- Oracle傳輸表空間學習Oracle
- db2檢視錶空間和增加表空間容量DB2
- db2 建立bufferpool,表空間DB2
- [DB2]表空間之DMS、自動儲存的DMS表空間DB2
- 【DB2學習】顯示錶空間的容器資訊DB2
- oracle 表空間 資料檔案 筆記Oracle筆記
- 工作筆記 - 調整索引和表空間筆記索引
- 有關UNDO表空間的學習:
- temp表學習筆記筆記
- 9i筆記-最佳化表空間筆記
- DB2頁大小、表大小和表空間大小限制DB2
- DB2建立資料庫,建立表空間DB2資料庫
- TypeScript學習筆記(三)泛型、模組化和名稱空間TypeScript筆記泛型
- CUUG 外部表學習筆記筆記
- 分割槽表學習筆記筆記
- ORACLE 表空間筆記-20140320Oracle筆記
- 【學習日記】oracle之表空間、資料檔案、控制檔案Oracle
- DB2 使用表空間備份恢復庫DB2
- oracle10g缺少tempfile(臨時表空間)_offline相關表空間測試筆記Oracle筆記
- Unity3D之空間轉換學習筆記(三):3D數學Unity3D筆記
- 控制檔案 線上日誌 回滾表空間 筆記筆記
- 9.管理表空間和資料檔案(筆記)筆記
- [DB2]線上備份資料庫與表空間DB2資料庫