最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle中獲取執(zhí)行計(jì)劃的幾種方法分析

 更新時(shí)間:2013年07月12日 11:23:57   作者:  
以下是對Oracle中獲取執(zhí)行計(jì)劃的幾種方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下

1. 預(yù)估執(zhí)行計(jì)劃 - Explain Plan
Explain plan以SQL語句作為輸入,得到這條SQL語句的執(zhí)行計(jì)劃,并將執(zhí)行計(jì)劃輸出存儲到計(jì)劃表中。
首先,在你要執(zhí)行的SQL語句前加explain plan for,此時(shí)將生成的執(zhí)行計(jì)劃存儲到計(jì)劃表中,語句如下:
explain plan for SQL語句
然后,在計(jì)劃表中查詢剛剛生成的執(zhí)行計(jì)劃,語句如下:
select * from table(dbms_xplan.display);
注意:Explain plan只生成執(zhí)行計(jì)劃,并不會真正執(zhí)行SQL語句,因此產(chǎn)生的執(zhí)行計(jì)劃有可能不準(zhǔn),因?yàn)椋?/FONT>

1)當(dāng)前的環(huán)境可能和執(zhí)行計(jì)劃生成時(shí)的環(huán)境不同;
2)不會考慮綁定變量的數(shù)據(jù)類型;
3)不進(jìn)行變量窺視。

2. 查詢內(nèi)存中緩存的執(zhí)行計(jì)劃 (dbms_xplan.display_cursor)
如果你想獲取正在執(zhí)行的或剛執(zhí)行結(jié)束的SQL語句真實(shí)的執(zhí)行計(jì)劃(即獲取library cache中的執(zhí)行計(jì)劃),可以到動態(tài)性能視圖里查詢。方法如下:

1)獲取SQL語句的游標(biāo)
游標(biāo)分為父游標(biāo)和子游標(biāo),父游標(biāo)由sql_id(或聯(lián)合address和hash_value)字段表示,子游標(biāo)由child_number字段表示。

如果SQL語句正在運(yùn)行,可以從v$session中獲得它的游標(biāo)信息,如:
select status, sql_id, sql_child_number from v$session where status='ACTIVE' and ....

如果知道SQL語句包含某些關(guān)鍵字,可以從v$sql視圖中獲得它的游標(biāo)信息,如:
select sql_id, child_number, sql_text from v$sql where sql_text like '%關(guān)鍵字%‘

2)獲取庫緩存中的執(zhí)行計(jì)劃
為了獲取緩存庫中的執(zhí)行計(jì)劃,可以直接查詢動態(tài)性能視圖v$sql_plan和v$sql_plan_statistics_all等,但更方便的方法是以sql_id和子游標(biāo)為參數(shù),執(zhí)行如下語句:
select * from table(dbms_xplan.display_cursor('sql_id',child_number));

3)獲取前一次的執(zhí)行計(jì)劃:
set serveroutput off
select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));

3. 查詢歷史執(zhí)行計(jì)劃(dbms_xplan.display_awr)
AWR會定時(shí)把動態(tài)性能視圖中的執(zhí)行計(jì)劃保存到dba_hist_sql_plan視圖中,如果你想要查看歷史執(zhí)行計(jì)劃,可以采用如下方法查詢:
select * from table(dbms_xplan.display_awr('sql_id');

4. 在用sqlplus做SQL開發(fā)是(Autotrace)
set autotrace是sqlplus工具的一個(gè)功能,只能在通過sqlplus連接的session中使用,它非常適合在開發(fā)時(shí)測試SQL語句的性能,有以下幾種參數(shù)可供選擇:

SET AUTOTRACE OFF ---------------- 不顯示執(zhí)行計(jì)劃和統(tǒng)計(jì)信息,這是缺省模式
SET AUTOTRACE ON EXPLAIN ------ 只顯示優(yōu)化器執(zhí)行計(jì)劃
SET AUTOTRACE ON STATISTICS -- 只顯示統(tǒng)計(jì)信息
SET AUTOTRACE ON ----------------- 執(zhí)行計(jì)劃和統(tǒng)計(jì)信息同時(shí)顯示
SET AUTOTRACE TRACEONLY ------ 不真正執(zhí)行,只顯示預(yù)期的執(zhí)行計(jì)劃,同explain plan

5. 生成Trace文件查詢詳細(xì)的執(zhí)行計(jì)劃 (SQL_Trace, 10046)
SQL_TRACE作為初始化參數(shù)可以在實(shí)例級別啟用,也可以只在會話級別啟用,在實(shí)例級別啟用SQL_TRACE會導(dǎo)致所有進(jìn)程的活動被跟蹤,包括后臺進(jìn)程及所有用戶進(jìn)程,這通常會導(dǎo)致比較嚴(yán)重的性能問題,所以在一般情況下,我們使用sql_trace跟蹤當(dāng)前進(jìn)程,方法如下:

SQL>alter session set sql_trace=true;
...被跟蹤的SQL語句...
SQL>alter session set sql_trace=false;
如果要跟蹤其它進(jìn)程,可以通過Oracle提供的系統(tǒng)包DBMS_SYSTEM. SET_SQL_TRACE_IN_SESSION來實(shí)現(xiàn),例如:
SQL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true) --開始跟蹤
SQL> exec dbms_system.set_sql_trace_in_session(sid,serial#,false) --結(jié)束跟蹤

生成trace文件后,再用tkprof 工具將sql trace 生成的跟蹤文件轉(zhuǎn)換成易讀的格式,語法如下:
tkprof inputfile outputfile
10046事件是SQL_TRACE的一個(gè)升級版,它也是追蹤會話,生成Trace文件,只是它里面的內(nèi)容更詳細(xì),

相關(guān)文章

  • oracle初始化參數(shù)設(shè)置

    oracle初始化參數(shù)設(shè)置

    oracle初始化參數(shù)設(shè)置...
    2007-03-03
  • Oracle刪除表及查看表空間的實(shí)例詳解

    Oracle刪除表及查看表空間的實(shí)例詳解

    這篇文章主要介紹了Oracle刪除表及查看表空間的實(shí)例詳解,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • ORACLE中的的HINT詳解

    ORACLE中的的HINT詳解

    本篇文章主要介紹了ORACLE中的的HINT詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • oracle查詢所有表信息表字段詳細(xì)示例

    oracle查詢所有表信息表字段詳細(xì)示例

    最近在工作中遇到個(gè)需求,要在Oracle數(shù)據(jù)庫中查詢表的所有字段、字段類型和字段說明,所以這篇文章主要給大家介紹了關(guān)于oracle查詢所有表信息表字段的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • oracle11g用戶登錄時(shí)被鎖定問題的解決方法 (ora-28000 the account is locked)

    oracle11g用戶登錄時(shí)被鎖定問題的解決方法 (ora-28000 the account is locked)

    最近在操作oracle11g的使用出現(xiàn)錯誤的現(xiàn)象:ora-28000 the account is locked,既用戶無法登錄問題,如何解決此問題呢?下面小編給大家?guī)砹薿racle11g用戶登錄時(shí)被鎖定問題的解決方法,感興趣的朋友一起看看吧
    2017-07-07
  • Oracle數(shù)據(jù)庫字符集及修改方式詳解

    Oracle數(shù)據(jù)庫字符集及修改方式詳解

    Oracle語言環(huán)境的描述包括三部分:language、territory、characterset(語言、地域、字符集),這篇文章主要介紹了Oracle數(shù)據(jù)庫字符集概述及修改方式,需要的朋友可以參考下
    2023-08-08
  • Oracle 要慌了!華為終于開源了自家的 Huawei JDK——畢昇 JDK!

    Oracle 要慌了!華為終于開源了自家的 Huawei JDK——畢昇 JDK!

    畢昇 JDK 是華為內(nèi)部 OpenJDK 定制版 Huawei JDK 的開源版本,是一個(gè)高性能、可用于生產(chǎn)環(huán)境的 OpenJDK 發(fā)行版,感興趣的朋友跟隨小編一起看看吧
    2020-12-12
  • Oracle下的Java分頁功能_動力節(jié)點(diǎn)Java學(xué)院整理

    Oracle下的Java分頁功能_動力節(jié)點(diǎn)Java學(xué)院整理

    分頁的時(shí)候返回的不僅包括查詢的結(jié)果集(List),而且還包括總的頁數(shù)(pageNum)、當(dāng)前第幾頁(pageNo)等等信息,所以我們封裝一個(gè)查詢結(jié)果PageModel類,具體實(shí)現(xiàn)代碼,大家參考下本文
    2017-08-08
  • Excel VBA連接并操作Oracle

    Excel VBA連接并操作Oracle

    Excel通過ADO方式連接到Oracle并操作Oracle給我們這些編程能力不強(qiáng)的人帶來很大的福音,結(jié)合著Excel的數(shù)據(jù)處理與圖表制作,就能很輕松地處理一些常規(guī)工作。
    2009-08-08
  • Oracle中BLOB、CLOB的讀取和寫入方式

    Oracle中BLOB、CLOB的讀取和寫入方式

    Oracle數(shù)據(jù)庫中,大類型字段(LOB)用于存儲大量數(shù)據(jù),包括文本、圖像、視頻等,主要類型有CLOB、BLOB、NCLOB和BFILE,CLOB用于存儲大段文本,BLOB用于存儲二進(jìn)制數(shù)據(jù),NCLOB適用于多國語言文本,而BFILE存儲外部文件的引用
    2024-10-10

最新評論

沙河市| 长岛县| 大洼县| 蒙自县| 清河县| 普格县| 页游| 冕宁县| 保康县| 沙河市| 乐陵市| 项城市| 宜丰县| 万宁市| 祁门县| 衡山县| 达日县| 怀集县| 忻城县| 定远县| 灵川县| 兴仁县| 布拖县| 谷城县| 靖西县| 巩留县| 新闻| 桐柏县| 新源县| 临高县| 宁远县| 杂多县| 县级市| 察雅县| 武夷山市| 襄城县| 如东县| 阿克陶县| 辽宁省| 仁怀市| 克拉玛依市|