SQL> SET AUTOTRACE ON;
SP2-0618: 無法找到會話標識符。啟用檢查 PLUSTRACE 角色
SP2-0611: 啟用 STATISTICS 報告時出錯
原因:SET AUTOTRACE ON 需要 PLUSTRACE 角色權限,預設未建立或未授權。
SQL> CONN / AS SYSDBA
SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql
腳本內容:建立角色、授予必要視圖查詢權限、授予 DBA。
-- 重建角色
DROP ROLE plustrace;
CREATE ROLE plustrace;
-- 授予 AUTOTRACE 所需的動態視圖查詢權限
GRANT SELECT ON v_$sesstat TO plustrace;
GRANT SELECT ON v_$statname TO plustrace;
GRANT SELECT ON v_$mystat TO plustrace;
-- 授予 DBA 角色(含 ADMIN OPTION 可轉授)
GRANT plustrace TO dba WITH ADMIN OPTION;
-- 必須授予實際使用 AUTOTRACE 的用戶或 PUBLIC
GRANT plustrace TO scott; -- 或 GRANT plustrace TO PUBLIC;
SQL> CONN scott/tiger
SQL> SET AUTOTRACE ON;
-- 成功,無錯誤訊息
| 視圖/權限 | 用途 |
|---|---|
| V_$SESSTAT | 會話級統計資訊 |
| V_$STATNAME | 統計名稱定義 |
| V_$MYSTAT | 當前會話統計 |
AUTOTRACE 讀取上述視圖顯示執行統計(邏輯讀、物理讀、排序等),缺少權限即拋出 SP2-0618。
plustrce.sql 未授予目標用戶 → 仍報錯DBA 角色但目標用戶非 DBA → 無效SET AUTOTRACE ON -- 顯示執行計劃 + 統計
SET AUTOTRACE TRACEONLY -- 僅顯示計劃/統計,不輸出查詢結果
SET AUTOTRACE OFF -- 關閉