Db2
用載入的數據重組新表的好處?
鑑於以下情況:
DB1: EXPORT TO T.IXF OF IXF ... modified by codepage=... SELECT * FROM T; DB2: CREATE TABLE T (...) COMPRESS YES ADAPTIVE ORGANIZE BY ROW; CREATE INDEX ... ON T (...) COMPRESS YES; ... LOAD FROM T.IXF OF IXF INSERT INTO T (...);
DB1 和 DB2 中的索引是相同的,除了在 DB2 中被壓縮之外,DB1 中的集群比率似乎還可以(不確定這是否重要)。DB1 和 DB2 之間的程式碼頁不同
載入後進行重組有什麼意義嗎?我發現 Z 的一些文章似乎表明數據的導出方式很重要(因為 Z 沒有仔細閱讀,所以我不知道這是否與 Z 和/或 LUW 相關) .
我嘗試了相當多的表,並在載入後執行了 REORGCHK,一切似乎都很好。比較
CALL GET_DBSIZE_INFO(?, ?, ?, 0)
REORG 之前和之後顯示大小略有下降 (<1%),但我不知道這是否是巧合。在載入到空表後,是否存在 REORG 有益的特殊情況?
用於 LUW 的 Db2
REORG
的壓縮表RESETDICTIONARY
在初始載入後可能是有益的,因為在載入期間,表級壓縮字典是使用傳入數據的樣本建構的,這意味著如果您的數據模式在輸入文件中分佈不均勻,則字典可能不是最佳的.REORG
將使用更大的樣本(如果不是所有數據)來建構字典。除此之外,
REORG
afterLOAD
是不必要的。Db2 for z/OS是不同的,因為其中每個表都會有一個集群索引(如果沒有顯式聲明,則隱式定義),如果您的輸入文件沒有根據目標表的集群索引排序,則載入後的集群因子會很差.