Database-Administration

db2 表空間大小和性能影響

  • February 5, 2011

最初,當我們開始遷移到 db2 LUW 時,我們遇到了一些問題,即我們的表太大而無法放入預設的 4K 表空間。由於完成它的“壓力”,我們只使用了 32K 的預設表空間並將我們所有的表都放在那裡。

如果有的話會有什麼影響?我和一個人談過,他說數據庫可能比它需要的大得多。真的嗎?記憶體呢?將較小的表移回 4K 表空間有什麼好處嗎?我在論壇上環顧四周,但似乎找不到一個好的答案。

簡而言之,如果您的要求相對較低(數據庫較小,事務量較低),我不會費心為不同的頁面大小設置不同的表空間。但是,如果您的數據庫很大或事務量增加,則會出現與性能和空間需求相關的問題。

DB2 可以在一頁中保存最大恒定數量的行(來源):

將行長為 12 字節的表放在頁大小為 32K 的表空間中,每頁僅使用約 10%,計算公式為(255 行 * 12 字節)+ 91 字節成本)/ 32k 頁大小 = ~ 10%。這僅在表很大時才需要考慮,這意味著浪費的空間很大。它還降低了 I/O 和緩衝的效率,因為每個頁面的實際有用內容很少。

如果數據庫足夠小以完全適合您的緩衝池,則性能方面可能不會有明顯差異。此外,如果數據庫很小,您可能不會注意到額外的幾 GB 已用空間。

您可以優化的(可能是 IBM 認為的)是您可以在不同的 IO 設備上設置表空間,還可以針對確切的案例優化緩衝池。例如,為所有表使用相同的緩衝池可能會導致某些次要功能(例如應用程序中的某些看門人任務)將最常用的數據經常從緩衝池中刷新。例如,將臨時表之類的東西放入不同的表空間和緩衝池中,您可以控制您寶貴的記憶體的用途。然而,如前所述,這些事情只有在某一點之後才開始變得重要。

引用自:https://serverfault.com/questions/152183