需要建立一張表來記錄
10年積累的成都網站建設、成都做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有銅山免費網站建設讓你可以放心的選擇與我們合作。
explain plan SET statement_id='name' FOR (這里是你要調試的語句 )
SELECT
A.OPERATION,
OPTIONS,
OBJECT_NAME,
OBJECT_TYPE,
ID,
PARENT_ID
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
ORDER BY
Id;
ID 'name'是一個標識,你可以自己取,字段有很多個,以下是各個字段的解釋(可能格式不對,你可以復制后看):
字段名 字段類型 含義
STATEMENT_ID VARCHAR2(30) explain PLAN 語句中所指定的最優STATEMENT_ID 參數值, 如果在EXPLAN PLAN語句中沒有使用SET STATEMENT_ID,那么此值會被設為NULL。
REMARKS VARCHAR2(80) 與被解釋規劃的各步驟相關聯的注釋最長可達80 字節
OPERATION VARCHAR2(30) 各步驟所執行內部操作的名稱在某條語句所產生的第一行中該列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT
OPTIONS VARCHAR2(30) 對OPERATION 列中所描述操作的變種
OBJECT_NODE VARCHAR2(128) 用于訪問對象的數據庫鏈接database link 的名稱對于使用并行執行的本地查詢該列能夠描述操作中輸出的次序
OBJECT_OWNER VARCHAR2(30) 對于包含有表或索引的架構schema 給出其所有者的名稱
OBJECT_NAME VARCHAR2(30) 表或索引的名稱
OBJECT_INSTANCE INTEGER 根據對象出現在原始original 語句中的次序所給出的相應次序編號就原始的語句文本而論其處理順序為自左至右自外向內景象擴張view
OBJECT_TYPE VARCHAR2(30) 用于提供對象描述性信息的修飾符例如索引的NON-UNIQUE
OPTIMIZER VARCHAR2(255) 當前優化程序的模式
ID INTEGER 分配給執行規劃各步驟的編號
PARENT_ID INTEGER 對ID 步驟的輸出進行操作的下一個執行步驟的ID
POSITION INTEGER 對于具有相同PARENT_ID 的步驟其相應的處理次序
COST INTEGER 根據優化程序的基于開銷的方法所估計出的操作開銷值對于使用基于規則方法的語句該列為空該列值沒有特定的測量單位它只是一個用于比較執行規劃開銷大小的權重值
CARDINALITY INTEGER 根據基于開銷的方法對操作所訪問行數的估計值
BYTES INTEGER 根據基于開銷的方法對操作所訪問字節的估計
=============================================
你按照我說的做,后面用
SELECT
*
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
結果已經很清楚了,全部滿足你的要求。
各列的具體含義上面已經給出。
在sqlplus
下執行
alter
session
set
sql_trace=true;
alter
session
set
tracefile_identifier='AAAA';
call
存儲過程
名;
alter
session
set
sql_trace=false;
然后到oracle服務器的安裝目錄下去找文件名稱含AAAA的文件,那里頭有具體調用存儲過程時的執行過程。應該有你要的東西。
用hibernate沒有,用的設置屬性show_sql為true
沒用,只想從后臺數據庫看對這個數據庫執行的sql問題補充:unika_ly12 寫道
那你直接查詢 v$sqltext 和 v$session 好了
首先,你要以dba身份登陸數據庫。
第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執行sql語句的那個用戶。命令如下:
execute dbms_system.set_sql_trace_in_session(sid,serial#,true)
其中參數的意義是,sid-會話id,serial#-序列號,這兩個參數可以從v$session中得到。
第三,上面的命令執行成功之后數據庫就自動對該用戶所發出的所有sql語句進行跟蹤,并把結果寫在用戶跟蹤文件里。用戶跟蹤文件存放在數據庫服務器上,路徑請參考init.ora文件中的udump參數值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統進程編號,這個編號可以從v$process和v$session兩個表通過關聯的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結果了。
首先,你要以dba身份登陸數據庫。
第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執行sql語句的那個用戶。命令如下:
execute dbms_system.set_sql_trace_in_session(sid,serial#,true)
其中參數的意義是,sid-會話id,serial#-序列號,這兩個參數可以從v$session中得到。
第三,上面的命令執行成功之后數據庫就自動對該用戶所發出的所有sql語句進行跟蹤,并把結果寫在用戶跟蹤文件里。用戶跟蹤文件存放在數據庫服務器上,路徑請參考init.ora文件中的udump參數值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統進程編號,這個編號可以從v$process和v$session兩個表通過關聯的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結果了。
execute dbms_system.set_sql_trace_in_session(sid,serial#,false)Good Luck我按你說的做了一遍,execute dbms_system.set_sql_trace_in_session(sid,serial#,true)
分享文章:oracle如何跟蹤過程,oracle 跟蹤sql語句
網頁網址:http://m.2m8n56k.cn/article44/hojdhe.html
成都網站建設公司_創新互聯,為您提供做網站、企業建站、App設計、網站設計、全網營銷推廣、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯