首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle資料庫收集指定 SQL 執行計劃與解決 ORA-00904 錯誤完整指南

     編輯:Oracle 資料庫相關知識

在 Oracle 資料庫開發與調優過程中,獲取特定 SQL 的執行計劃是診斷效能問題的關鍵步驟。本文詳細記錄基礎收集方法,並針對常見的 ORA-00904 錯誤提供解決方案,供開發人員快速查閱參考。

一、使用 AUTOTRACE 快速獲取執行計劃

最直接的方式是透過 SQL*Plus 內建的 AUTOTRACE 功能:

  1. 連線至 SQL*Plus 環境。
  2. 啟用自動分析統計:
    SET AUTOTRACE ON;

    說明:此指令會開啟自動追蹤,並顯示 SQL 執行結果與執行計劃。

  3. 輸入並執行目標 SQL 語句,執行計劃將直接輸出於螢幕。

SQL*Plus 連線示意圖

AUTOTRACE 輸出執行計劃範例

二、遭遇 ORA-00904 錯誤時的處理

若執行上述步驟時出現 ORA-00904: invalid identifier 錯誤,通常是因為 PLAN_TABLE 缺失或結構不符。解決步驟如下:

  1. 刪除現有的 PLAN_TABLE(若存在):
    DROP TABLE PLAN_TABLE;
  2. 使用 Oracle 官方腳本重建標準 PLAN_TABLE:
    @$ORACLE_HOME/rdbms/admin/utlxplan.sql
  3. 重建完成後,再次執行 SET AUTOTRACE ON 並跑 SQL,即可正常顯示執行計劃。

執行 utlxplan.sql 重建 PLAN_TABLE

修復後正常顯示執行計劃

三、補充說明

  • PLAN_TABLE 是 Oracle 用於儲存執行計劃的暫存表,結構需與資料庫版本相容。
  • 若權限不足無法建立表,請聯繫 DBA 協助執行 utlxplan.sql 或授予 CREATE TABLE 權限。
  • 進階分析可搭配 DBMS_XPLAN.DISPLAY、SQL_TRACE 或 SQL Monitoring 使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved