A. oracle sql執行計劃怎麼看
plsql developer的話,在sql命令窗口中,按F5就能看到執行計劃
sqlplus的話:
方法一
第一步:登入sql/plus 執行命令(無先後順序)
set time on; (說明:打開時間顯示)
set autotrace on; (說明:打開自動分析統計,並顯示SQL語句的運行結果)
set autotrace traceonly; (說明:打開自動分析統計,不顯示SQL語句的運行結果)
二者選一個執行
第二步: 輸入你要查看的sql 執行
第三步:查看結果 如圖 (圖怎麼沾不上啊)
方法二
先執行 EXPLAIN PLAN FOR select * from G_GAMBLING gamb where gamb.active=1
再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的執行計劃了
B. oracle怎樣跟蹤一條sql語句的執行過程
需要建立一張表來記錄
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'
結果已經很清楚了,全部滿足你的要求。
各列的具體含義上面已經給出。
C. 如何查看Oracle中sql語句的執行時間
如何查看Oracle中sql語句的執行時間
: 第三方工具pl/sql的最下一行是執行時間 如果是sqlplus那麼就先set timing on,然後執行語句,執行完畢後就能看到執行時間。
D. Oracle如何查看SQL實際執行計劃
1、 查看最近執行的SQL語句
select/*recentsql*/s.SQL_ID,s.CHILD_NUMBER,s.HASH_VALUE,s.ADDRESS,s.EXECUTIONS,s.SQL_TEXT
fromv$sqls
wheres.PARSING_USER_ID=(
selectu.user_idfromall_usersu
whereu.username='YH_TEST'
)ands.COMMAND_TYPEin(2,3,6,7,189)
anpper(s.SQL_TEXT)notlikeupper('%recentsql%')
select/*+gather_plan_statistics*//*plan_statistics1*/name,salaryfromtestwherename='t1';
2、使用dbms_xplan.display_cursor查看執行計劃,它的用法見筆記 《dbms_xplan.display_cursor的用法》,
注意了:若dbms_xplan.display_cursor要以ALLSTATS LAST格式輸出的話,/*+gather_plan_statistics*/這個提示信息放到查詢語句中是必須的。
E. oracle sql的執行計劃如何查看
方法/步驟
打開PL/SQL Developer軟體,請確保plsql能夠成功連接到一個oracle資料庫。
在PL/SQL Developer中寫好一段SQL代碼,按F5,或者點擊「執行執行計劃」圖標,PL/SQL Developer會自動打開執行計劃窗口,顯示該SQL的執行計劃。
可以看到窗口上方是sql語句,下方顯示執行計劃表格。表格的列主要包含描述、用戶、對象、成本花費、IO開銷等,表格,當然表格列還可以自定義。表格的行包含了查詢邏輯的執行順序和各個步驟信息。
執行計劃表格內容的執行順序是:按照從左至右,從上至下的步驟執行,具體是指執行計劃按照層次逐步縮進,從左至右看,縮進最多的那一步最先執行,如果縮進量相同,則按照從上而下的方法判斷執行順序。
通過查看執行計劃表格的cost列,即成本花費能夠知道哪個步驟花費的成本高,通過查看執行計劃表格的行中的objectname列,能夠知道是否使用到表中的索引。
步驟閱讀
6
本文先簡單介紹在plsql中的使用方法,後續會逐步完成各種理論和技巧的使用方法,例如優化器、表連接訪問方法、索引等
F. oracle中的sql執行計劃怎麼看
1、直接File->New->Explain Plan Window,在窗口中執行sql可以查看計劃結果。其中,Cost表示cpu的消耗,單位為n%,Cardinality表示執行的行數,等價Rows。
2、先執行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的執行計劃了,看到的結果和1中的一樣,所以使用工具的時候推薦使用1方法。
注意:PL/SQL Dev工具的Command window中不支持set autotrance on的命令。還有使用工具方法查看計劃看到的信息不全,有些時候我們需要sqlplus的支持。
二、通過sqlplus
1.最簡單的辦法
Sql> set autotrace on
Sql> select * from al;
執行完語句後,會顯示explain plan 與 統計信息。
這個語句的優點就是它的缺點,這樣在用該方法查看執行時間較長的sql語句時,需要等待該語句執行成功後,才返回執行計劃,使優化的周期大大增長。如果不想執行語句而只是想得到執行計劃可以採用:
Sql> set autotrace traceonly
G. oracle查看sql還有多長時間執行完成
你好:這個功能當前頁還沒有方法實現,主要這個執行時間會根據你電腦的配置,sql的復雜程度等不同而不同,很難確定到底需要執行多長時間,
H. 在ORACLE 中怎麼查看SQL 執行日誌
1、首先打開oracle sql developer工具,沒有此工具的可以去網路瀏覽器下載安裝即可,滑鼠點擊查看菜單。
I. 如何查看一個SQL的執行進度
如何查看一個SQL的執行進度
沒有好的辦法,你測試一下時間,計算出每條更新要花多少時間,然後用SQL拉出需要更新的條目,再根據前面計算的時間作為參考來做進度條吧!這樣出入可能大一點。這個要獲取session,目前看到的只有Oracle可以,別的沒見過。
J. oracle 中怎麼監控sql執行的進度
pl/sql tool session 找到相應的session 一般應用程序是 JDBC Thin Client 然後點下面的sqltext就可以看到執行到那句話了,可以不停刷新看sql變化