获取执行计划EXPLAN PLAN(Mysql查看执行计划)
一般獲取執(zhí)行計劃有四種途徑:1、執(zhí)行explain plan,查詢結(jié)果輸出表。2、查詢動態(tài)性能視圖,它顯示緩存在庫緩存中的執(zhí)行計劃(有時查不出結(jié)果是因為執(zhí)行計劃已經(jīng)不在庫緩存中)。3、查詢AWR或Statspack表。4、啟動提供執(zhí)行計劃的跟蹤功能(set autotrace tra
一般獲取執(zhí)行計劃有四種途徑:1、執(zhí)行explain plan,查詢結(jié)果輸出表。2、查詢動態(tài)性能視圖,它顯示緩存在庫緩存中的執(zhí)行計劃(有時查不出結(jié)果是因為執(zhí)行計劃已經(jīng)不在庫緩存中)。3、查詢AWR或Statspack表。4、啟動提供執(zhí)行計劃的跟蹤功能(set autotrace trace explain)。使用得比較多的是第四種,簡單又好用~本篇講第一種方法。
首先,explainplan原理就是把一條SQL語句分析一下,將該語句的執(zhí)行計劃和相關(guān)信息存儲到計劃表(plan table)中。可以查看一下聯(lián)機(jī)文檔關(guān)于explain plan的語法,
這里的string是用于區(qū)分計劃表中多個執(zhí)行計劃的,into后面的table就是“計劃表”。一般的使用方法是explain plan for “sql text”;之后select * fromtable(dbms_xplan.display);有時出現(xiàn)這種情況,explain plan for insert into test select * from test; 此時任何事務(wù)并無變化,因為explainplan是DML語句,不會對當(dāng)前事務(wù)隱式提交,僅僅是插入幾條記錄到計劃表。
我們會把執(zhí)行計劃與相關(guān)信息存入計劃表,默認(rèn)計劃表是sys下的一張表,但有一個plan_table公共同義詞,當(dāng)你想使用一個私有的計劃表時,可以運行utlxplan.sql腳本。
當(dāng)分析的sql語句有綁定變量時,一般使用綁定變量進(jìn)行explain for,而不是使用幾個常量代入綁定變量進(jìn)行分析。在explain for使用綁定變量也有兩個問題。第一,默認(rèn)情況下綁定變量是varchar2類型,所以在執(zhí)行計劃access中會有一個顯式類型轉(zhuǎn)換;第二,不能使用bind peeking。
總結(jié)
以上是生活随笔為你收集整理的获取执行计划EXPLAN PLAN(Mysql查看执行计划)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP请求的常用方法有哪些(常见的HT
- 下一篇: html怎么写按钮