oracle執(zhí)行計(jì)劃詳解 怎么使用plsql查看執(zhí)行計(jì)劃?
怎么使用plsql查看執(zhí)行計(jì)劃?編寫(xiě)一段SQL代碼后,通過(guò)查看SQL的執(zhí)行計(jì)劃,可以初步預(yù)測(cè)SQL在運(yùn)行時(shí)的性能。特別是當(dāng)我們發(fā)現(xiàn)SQL語(yǔ)句的效率很低時(shí),我們可以通過(guò)查看執(zhí)行計(jì)劃來(lái)分析SQL代碼的問(wèn)題
怎么使用plsql查看執(zhí)行計(jì)劃?
編寫(xiě)一段SQL代碼后,通過(guò)查看SQL的執(zhí)行計(jì)劃,可以初步預(yù)測(cè)SQL在運(yùn)行時(shí)的性能。特別是當(dāng)我們發(fā)現(xiàn)SQL語(yǔ)句的效率很低時(shí),我們可以通過(guò)查看執(zhí)行計(jì)劃來(lái)分析SQL代碼的問(wèn)題。
那么,作為開(kāi)發(fā)人員,如何使用執(zhí)行計(jì)劃來(lái)評(píng)估SQL語(yǔ)句的性能呢?總結(jié)以下步驟供參考:1。打開(kāi)熟悉的查看工具:PL/sqldeveloper。
在PL/SQL developer中編寫(xiě)一段SQL代碼后,按F5,PL/SQL developer將自動(dòng)打開(kāi)“執(zhí)行計(jì)劃”窗口以顯示SQL的執(zhí)行計(jì)劃。
2. 一般來(lái)說(shuō),與執(zhí)行計(jì)劃的第一行相對(duì)應(yīng)的成本值反映了運(yùn)行此SQL的總估計(jì)成本。單看總成本是沒(méi)有意義的,但它可以與具有相同邏輯和不同執(zhí)行計(jì)劃的SQL的總成本進(jìn)行比較。一般來(lái)說(shuō),低成本的執(zhí)行方案比較好。
3. 按照從左到右、從上到下的方法,了解執(zhí)行計(jì)劃的執(zhí)行步驟
執(zhí)行計(jì)劃按層次逐級(jí)縮進(jìn)。從左到右,首先執(zhí)行縮進(jìn)最多的步驟。如果縮進(jìn)量相同,則按照自上而下的方法判斷執(zhí)行順序,大致認(rèn)為以上步驟是先執(zhí)行的。每個(gè)執(zhí)行步驟都有相應(yīng)的成本。我們可以從單步成本水平和單步估算結(jié)果集(對(duì)應(yīng)行/基數(shù))來(lái)分析表的訪問(wèn)方式、連接順序以及連接方式是否合理。
如果在plsql里邊查看存儲(chǔ)過(guò)程的執(zhí)行計(jì)劃?
存儲(chǔ)過(guò)程沒(méi)有執(zhí)行計(jì)劃,只有SQL有執(zhí)行計(jì)劃。
您可以逐個(gè)分析存儲(chǔ)過(guò)程中的SQL