Db2

用載入的數據重組新表的好處?

  • September 1, 2020

鑑於以下情況:

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將使用更大的樣本(如果不是所有數據)來建構字典。

除此之外,REORGafterLOAD是不必要的。

Db2 for z/OS是不同的,因為其中每個表都會有一個集群索引(如果沒有顯式聲明,則隱式定義),如果您的輸入文件沒有根據目標表的集群索引排序,則載入後的集群因子會很差.

引用自:https://dba.stackexchange.com/questions/274450