public class TimeDiff {
private DateTime startTime, endTime;
public void start() { startTime = DateTime.Now; }
public void stop() { endTime = DateTime.Now; }
public String getTimeDifferenceText() {
return (endTime - startTime).ToString();
}
}
測試表 LOTSOFRECORDS:10,000 列 × 10 欄 (CHAR(50)),主鍵 KEYCOL。
注意:DB2 內部緩衝池首次查詢後暖機,效能測試以暖機後結果為準。
SELECT * FROM GLENN.LOTSOFRECORDS
SELECT KEYCOL, COL1, COL2, COL7 FROM GLENN.LOTSOFRECORDS
效益:網路流量 ↓、伺服器 CPU/記憶體 ↓、用戶等待 ↓。
延伸:WHERE 過濾列,進一步減少回傳量。
SELECT PRODUCTCODE, PRODUCTNAME, DESCRIPTION, UNITPRICE
FROM GLENN.PRODUCTLIST WHERE UNITPRICE > 20.00
無索引 → 全表掃描;建立 CREATE INDEX idx_price ON PRODUCTLIST(UNITPRICE) → 索引區間掃描,毫秒級回應。
comp.databases.ibm-db2。雖原文著重前兩規則,生產級 Web 應用必備:
setFetchSize) 避免 OOM。| 規則 | 關鍵動作 | 量化收益 |
|---|---|---|
| 按需檢索 | SELECT 明確欄位 + WHERE 過濾列 | 網路流量 ↓ 20%+、回應時間 ↓ |
| 優化資料庫 | 針對 WHERE/JOIN/ORDER BY 建索引 + 定期 RUNSTATS + Index Advisor | 全表掃描 → 索引掃描、CPU ↓ |
| 連線池/PreparedStatement | 配置連線池 + 參數化查詢 | 連線開銷 ↓ 90%+、計劃重用率 ↑ |