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