表 p_detail 89 萬筆,測試兩類查詢:
-- Q1: 日期範圍 + 餘額條件
SELECT COUNT(*) FROM p_detail
WHERE op_date > '19990101' AND op_date < '19991231' AND pri_surplus1 > 300;
-- Q2: 日期範圍 + 繳費月份範圍
SELECT COUNT(*), SUM(pri_surplus1) FROM p_detail
WHERE op_date > '19990101' AND pay_month BETWEEN '199908' AND '199912';
| 索引策略 | Q1 耗時 | Q2 耗時 |
|---|---|---|
| 無索引 | 1 分 15 秒 | 1 分 7 秒 |
op_date 非叢集 | 57 秒 | 57 秒 |
op_date 叢集 | < 1 秒 | 52 秒 |
pay_month, op_date, pri_surplus1 非叢集 | 34 秒 | < 1 秒 |
op_date, pay_month, pri_surplus1 非叢集 | < 1 秒 | < 1 秒 |
WHERE 條件且常聯結 → 叢集索引。FILLFACTOR 減少分頁分裂、提高並發、降低死鎖;唯讀表設 100。