插入前建索引: 索引隨資料插入同步更新,需大量日誌空間,速度較慢,可用 NOT LOGGED INITIALLY 載入。
插入後建索引: 需執行 RUNSTATS ON TABLE ... AND INDEXES ALL 更新統計資訊,否則執行計畫不使用索引。統計更新後速度最快。
現有倉庫每節點 2 CPU、4 GB 記憶體。DIM 表空間為單節點,使用該表空間表時最多只用 2 CPU/4 GB。建議大表建立分區鍵置於多節點表空間,32 節點並行檢索再匯總至節點 0 展現,速度極快。並行性好之外,再建好索引速度更快。
DB 為保一致性與可回滾,DML 預設記日誌。高併發/大操作易導致日誌爭用、操作緩慢。用 NOT LOGGED INITIALLY 載入,日誌用量極少,但失敗無法回滾,只能刪除重建。
DB 鎖數量有上限,每鎖佔記憶體。鎖太多導致資源緊張。將表設為表級鎖可減少鎖數量。
程式常為提速將用到資料先放入臨時表,但常塞入大量未用資料導致臨時表過大。盡量只插入必要資料並善用索引,大幅提速。
ON 條件中僅寫關聯條件與對左表的限制,主表限制勿寫在 ON 裡。寫在裡面不但極慢,還可能產生莫名結果。