並置 是指將多個表中「邏輯相關」的行(如同一客戶的訂單、明細)物理存放在 同一數據庫分區 上。當 Join 或子查詢發生時,DB2 可在本地分區直接完成連接,避免跨分區數據傳輸,帶來數量級性能提升。
BIGINT/SMALLINT/INTEGER;REAL/FLOAT;不同長度 CHAR/VARCHAR;GRAPHIC/VARGRAPHIC;尾部空格被忽略;NULL 處理一致;精度/標度不同的 DECIMAL。DATE/TIME/TIMESTAMP 互不兼容,亦不兼容 CHAR;LOB/LONG/CLOB/BLOB 不可作分區鍵;用戶定義類型以基類型判定。表 A(c1 INT, c2 CHAR) 按 c1 分區;表 B(c1 VARCHAR, c2 INT) 按 c2 分區。
查詢:SELECT * FROM A, B WHERE A.c1 = B.c2
A.c1 (INT) 與 B.c2 (INT) 類型兼容,哈希結果一致。A.c1 = B.c2 的行 必然落在同一分區。SHIP 數據到協調節點,極大降低網絡/CPU 開銷。customer_id) 分區。VARCHAR vs CHAR 雖兼容,但隱式轉換可能導致分區剪枝失效)。