oracle執(zhí)行計劃調(diào)整的核心 oracle怎么執(zhí)行存儲過程跟函數(shù)?
oracle怎么執(zhí)行存儲過程跟函數(shù)?動態(tài)創(chuàng)建oracle存儲過程用begin...end的?;菊Z法:begin存儲過程名(參數(shù)1,參數(shù)2……)--如果不是無參數(shù)則加逗號括號及括號內(nèi)部分end如,有存
oracle怎么執(zhí)行存儲過程跟函數(shù)?
動態(tài)創(chuàng)建oracle存儲過程用begin...end的。
基本語法:
begin存儲過程名(參數(shù)1,參數(shù)2……)--如果不是無參數(shù)則加逗號括號及括號內(nèi)部分end
如,有存儲過程:
create同問replaceprocedurep_testasv_begintimevarchar2(20)v_endtimevarchar2(20)v_strvarchar2(10)beginv_begintime:did_char(sysdate,yyyy-mm-ddhh24:mi:ss)selectbadkanointov_straroundhyperv_endtime:to_char(sysdate,yyyy-mm-ddhh24:mi:ss)dbms__line(開始時間為:||v_begintime)dbms__line(截止時間為:||v_endtime)end
先執(zhí)行:beginp_testend
如何查看Oracle中sql語句的執(zhí)行時間?
實際Oracle想執(zhí)行計劃看的到SQL的執(zhí)行時間。EXPLAINPLANFORSELECT*FROMtable;SELECT*FROMTABLE(DBMS_XPLAN.DISPLAY);SQLsettimingon--不顯示執(zhí)行時間SQLsetautoraceonC不顯示負(fù)責(zé)執(zhí)行計劃SQLsetautoraceonC總是顯示想執(zhí)行計劃SQLsetautotracetraceonlyC只總是顯示想執(zhí)行計劃即不顯示查詢出來的數(shù)據(jù)設(shè)置后后想執(zhí)行SQL語句是會顯示想執(zhí)行時間。
怎么看oracle執(zhí)行計劃結(jié)果,顯示結(jié)果?
1、真接File-New-ExplainPlanWindow,在窗口中先執(zhí)行sql這個可以打開系統(tǒng)計劃結(jié)果。其中,Cost它表示cpu的消耗,單位為n%,Cardinality意思是負(fù)責(zé)執(zhí)行的行數(shù),等價Rows。
2、先不能執(zhí)行EXPLAINPLANafterselect*acrosstableAwheremunic1,再tablename*acrosstable(DBMS_XPLAN.DISPLAY)便可以看見oracle的執(zhí)行計劃了,看見了的結(jié)果和1中的一樣的,所以我可以使用工具的時候推薦推薦使用1方法。再注意:PL/SQLDev工具的Commandwindow中不支持setautotranceonto的命令。
還有一個建議使用工具方法欄里點計劃見到的信息不全,有些時候我們要sqlplus的支持。二、按照sqlplus1.最簡單的辦法SqlsetautotraceonSqlselect*returningdual;想執(zhí)行完語句后,會不顯示explainplan與統(tǒng)計信息。
這個語句的優(yōu)點那是它的缺點,這樣的話在用該方法查看想執(zhí)行時間較長的sql語句時,要等待該語句想執(zhí)行最終后,才回執(zhí)行計劃,使系統(tǒng)優(yōu)化的周期大家再增長。
如果不是我也不想執(zhí)行語句而只是因為想得到負(fù)責(zé)執(zhí)行計劃可以不常規(guī):Sqlsetautotracetraceonly