沒用,只想從后臺數(shù)據(jù)庫看對這個數(shù)據(jù)庫執(zhí)行的sql問題補充:unika_ly12 寫道 那你直接查詢 v$sqltext 和 v$session 好了 首先,你要以dba身份登陸數(shù)據(jù)庫。 第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執(zhí)行sql語句的那個用戶。命令如下: execute dbms_system.set_sql_trace_in_session(sid,serial#,true) 其中參數(shù)的意義是,sid-會話id,serial#-序列號,這兩個參數(shù)可以從v$session中得到。 第三,上面的命令執(zhí)行成功之后數(shù)據(jù)庫就自動對該用戶所發(fā)出的所有sql語句進行跟蹤,并把結(jié)果寫在用戶跟蹤文件里。用戶跟蹤文件存放在數(shù)據(jù)庫服務器上,路徑請參考init.ora文件中的udump參數(shù)值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統(tǒng)進程編號,這個編號可以從v$process和v$session兩個表通過關(guān)聯(lián)的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結(jié)果了。 首先,你要以dba身份登陸數(shù)據(jù)庫。 第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執(zhí)行sql語句的那個用戶。命令如下: execute dbms_system.set_sql_trace_in_session(sid,serial#,true) 其中參數(shù)的意義是,sid-會話id,serial#-序列號,這兩個參數(shù)可以從v$session中得到。 第三,上面的命令執(zhí)行成功之后數(shù)據(jù)庫就自動對該用戶所發(fā)出的所有sql語句進行跟蹤,并把結(jié)果寫在用戶跟蹤文件里。用戶跟蹤文件存放在數(shù)據(jù)庫服務器上,路徑請參考init.ora文件中的udump參數(shù)值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統(tǒng)進程編號,這個編號可以從v$process和v$session兩個表通過關(guān)聯(lián)的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結(jié)果了。
創(chuàng)新互聯(lián)建站是專業(yè)的前鋒網(wǎng)站建設(shè)公司,前鋒接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行前鋒網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
需要建立一張表來記錄
explain plan SET statement_id='name' FOR (這里是你要調(diào)試的語句 )
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 語句中所指定的最優(yōu)STATEMENT_ID 參數(shù)值, 如果在EXPLAN PLAN語句中沒有使用SET STATEMENT_ID,那么此值會被設(shè)為NULL。
REMARKS VARCHAR2(80) 與被解釋規(guī)劃的各步驟相關(guān)聯(lián)的注釋最長可達80 字節(jié)
OPERATION VARCHAR2(30) 各步驟所執(zhí)行內(nèi)部操作的名稱在某條語句所產(chǎn)生的第一行中該列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT
OPTIONS VARCHAR2(30) 對OPERATION 列中所描述操作的變種
OBJECT_NODE VARCHAR2(128) 用于訪問對象的數(shù)據(jù)庫鏈接database link 的名稱對于使用并行執(zhí)行的本地查詢該列能夠描述操作中輸出的次序
OBJECT_OWNER VARCHAR2(30) 對于包含有表或索引的架構(gòu)schema 給出其所有者的名稱
OBJECT_NAME VARCHAR2(30) 表或索引的名稱
OBJECT_INSTANCE INTEGER 根據(jù)對象出現(xiàn)在原始original 語句中的次序所給出的相應次序編號就原始的語句文本而論其處理順序為自左至右自外向內(nèi)景象擴張view
OBJECT_TYPE VARCHAR2(30) 用于提供對象描述性信息的修飾符例如索引的NON-UNIQUE
OPTIMIZER VARCHAR2(255) 當前優(yōu)化程序的模式
ID INTEGER 分配給執(zhí)行規(guī)劃各步驟的編號
PARENT_ID INTEGER 對ID 步驟的輸出進行操作的下一個執(zhí)行步驟的ID
POSITION INTEGER 對于具有相同PARENT_ID 的步驟其相應的處理次序
COST INTEGER 根據(jù)優(yōu)化程序的基于開銷的方法所估計出的操作開銷值對于使用基于規(guī)則方法的語句該列為空該列值沒有特定的測量單位它只是一個用于比較執(zhí)行規(guī)劃開銷大小的權(quán)重值
CARDINALITY INTEGER 根據(jù)基于開銷的方法對操作所訪問行數(shù)的估計值
BYTES INTEGER 根據(jù)基于開銷的方法對操作所訪問字節(jié)的估計
=============================================
你按照我說的做,后面用
SELECT
*
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
結(jié)果已經(jīng)很清楚了,全部滿足你的要求。
各列的具體含義上面已經(jīng)給出。
如何實時跟蹤oracle的sql語句
這個要開啟oracle的audit功能。
select * from DBA_AUDIT_OBJECT