vmstat、glance、top、sar、Windows PerfMon。原則:磁碟 I/O 為響應時間最大成分,慢 10,000 倍於邏輯讀。若交易透過 PK 索引範圍掃描存取多列,將表列按 PK 順序物理重排,可大幅減少物理讀。
SELECT salary FROM employee WHERE last_name LIKE 'B%';
SELECT clustering_factor FROM dba_indexes WHERE index_name = 'IDX_NAME'; -- clustering_factor ≈ blocks → 順序佳 -- clustering_factor ≈ rows → 順序差,適合重排
CREATE TABLE new_t AS SELECT * FROM old_t ORDER BY pk_col; (CTAS)DBMS_REDEFINITION / 線上重定義。SELECT *,只取需要欄位。WHERE TRUNC(dt)=... → WHERE dt BETWEEN ...)。EXISTS 替代 IN (子查詢大時)。DBMS_STATS)。SORT_AREA_SIZE (專用伺服器) / SORT_AREA_RETAINED_SIZE (MTS) 決定記憶體排序上限,超量寫入暫存表空間。SORT_MULTIBLOCK_READ_COUNT。UNION ALL 代替 UNION、INDEX DESC 避免 ORDER BY ... DESC 排序。| 參數 | 調整方向 | 影響 |
|---|---|---|
| FREELISTS | 增加 (CPU 核心數×2 起) | 減少 INSERT 時 free list 爭用 |
| PCTFREE | 預留 10~20% 給 UPDATE 膨脹 | 避免行遷移產生額外 I/O |
| INITRANS | 高併發表設 10~20 | 預先分配 ITL 槽位,減少動態擴展等待 |
| MAXTRANS | 255 (8i+ 忽略) | 歷史參數 |
由外而內、由粗到細:先保證硬體資源無瓶頸,再透過 Row Resequencing 解決大 I/O,接著 SQL 調優收割最大效益,最後微調排序與區塊競爭參數,構建穩定高效的 Oracle 系統。