SQL> SET TIMING ON
SQL> SELECT COUNT(*) FROM comm_human_role;
COUNT(*)
----------
866
Elapsed: 00:00:00.05
輸出格式:HH:MI:SS.ff(時:分:秒.百分秒)。00:00:00.05 = 50 毫秒;00:03:235.78 = 235.78 秒 ≈ 3 分 55.78 秒。
SET LINESIZE 190 -- 寬度 190 字元,避免換行截斷
SET AUTOTRACE ON -- 顯示執行計畫 + 統計資訊(需 PLUSTRACE 權限)
SET TIMING ON -- 顯示耗時
AUTOTRACE 需執行 @$ORACLE_HOME/sqlplus/admin/plustrce.sql 並授權 GRANT PLUSTRACE TO user;。
錯誤訊息:
SP2-0027: Input is too long (> 2499 characters) - line ignored
原因:SQL*Plus 緩衝區限制單行輸入不超過 2499 位元組。
.sql 檔,用 @script.sql 執行,繞過命令列限制。SET LINESIZE 32767(最大值),但無法突破 2499 字元輸入限制,僅影響輸出顯示。-- 錯誤:單行過長
SELECT * FROM big_table WHERE id IN (1,2,3,...,5000);
-- 正確:多行輸入
SELECT * FROM big_table
WHERE id IN (
1,2,3,...,1000,
1001,1002,...,2000,
...
4001,...,5000
);
或使用臨時表 / 全局暫存表載入大量值再連接,效能更優。
SET TIMING ON 是最輕量的計時工具;AUTOTRACE 提供計畫與統計;長 SQL 必須拆行或寫腳本。養成「先 SET 三件套,再跑 SQL」習慣,調優事半功倍。