https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0902yuancg/
臨時表空間的使用 (sorts or joins)
(1) 最好和大多數 數據表空間的頁大小一致
(2) 批量和順序的訪問,就是說數據行被批量的寫入和讀取。所以較大的頁大小會有利於性能,減少邏輯和物理io
平均行大小 小於 頁大小除以255 (32k*1024/255 = 128byte)
最大255行可以存在於任何頁,無論頁大小是多少
15byte 在 4k頁上會更好 (4k*1024/255 = 16byte) page size過大,會造成浪費
(3) 共享數據表空間的bufferpools
(4) reorg table 時,要有匹配的page size,才能使用臨時表空間。直接在目標表的表空間重組,需要額外的空間
(5) 添加一個8K 頁大小的臨時表空間,並使用一個較大的bufferpool。 優化器通常會選擇較大buffer的臨時表空間
(6) 一般情況下,定義具有相同頁大小的多個臨時表空間沒有什么好處
(7) 數據庫錯誤
SQL1585N A system temporary table space with sufficient page size does not exist. SQLSTATE=54048
8K表空間 使用 4k 的臨時表空間 報錯
4k表空間 使用 4k 的臨時表空間 某種情況 也會報錯,如:
(select aa.* from yeyu.b1 aa,yeyu.b2 bb where aa.c1=bb.c1 order by aa.c1,bb.c1)
================================================================================================
1、表空間對應指定的容器的設備名及大小
2、分“系統管理表空間SMS”“數據庫管理表空間DMS”
3、系統臨時表空間用來存儲分組、排序、連接、重組、創建索引操作。
4、用戶臨時表空間批量插入、批量刪除、批量更新提高速度“declare global temporary table”聲明臨時表需要有臨時表空間存在
5、查看表空間“db2 list tablespaces show detail”
6、默認自動創建三個表空間(SYSCATSPACE、TEMPSPACE1、USERSPACE1)“系統編目表空間SYSCATSPACE”和“系統臨時表空間TEMPSPACE1”是只讀的,不能在上面創建表
7、
8、查看表空間容器的情況,使用LIST TABLESPACE CONTAINERS命令,該命令將列出指定表空間中的所有容器。如上所示的路徑指向容器物理上所在的位置
9、對於SMS表空間,我們只能增加容器,對於DMS表空間,可以添加、擴展、重新平衡、刪除或減少容器,或者調整容器大小。要使用命令行來改變表空間,可使用ALTER TABLESPACE語句
10、通過將一個或多個容器添加至DMS表空間,可以增大該表空間的大小。增加容器后會平衡表空間數據,不影響讀數據
11、SMS表空間,由系統分配,大小可變,物理上存儲可能不連續。
12、DMS表空間,物理上連續,大小不可變(可增加容器增加大小)有增刪改操作的數據適合用DMS表空間
13、小型個人數據庫用SMS管理方便。數據不斷變大的數據庫最好用SMS作為系統臨時和用戶臨時表空間,每個表用容器對應的DMS表空間管理,並對長字段數據,索引放在分別存放在不同的表空間
14、存儲許多小表用SMS表空間。對數據量非常大的表可以使用單獨的DMS表空間
15、例如,某些歷史數據用戶可以接受較長的查詢時間,可以為歷史記錄表使用單獨的一個表空間,並將次表空間分配給訪問速率較低的較便宜的物理設備。 對於需要快速響應的頻繁配置的參數表等,那么需要將這些表分配給一個快速物理設備的表空間中
16、通過使用DMS表空間,還可以將表數據分發在3個不同的表空間中:一個存儲索引數據;一個存放大對象(LOB)和長字段(LF)數據;一個存儲常規表數據。把索引放在最快的設備上
17、可以備份表空間,允許頻繁備份有大量更改的表空間,或者偶爾備份有少量更改的表空間
18、表空間頁大小限定行的最大長度和存儲空間最大值
19、
20、OLTP(隨機存取,例如銀行交易),OLAP(大量讀取,例如數據倉庫)對於OLAP:PREFETCHSIZE=EXTENTSIZE*容器設備數,預存取大小指定為-1,PREFETCHSIZE設置為AUTOMATIC或-1
更多DB2表空間知識:https://www.cnblogs.com/heml/p/3368617.html