回覆列表
  • 1 # 星火雲影視剪輯

    1、 開啟熟悉的檢視工具:PL/SQL Developer。在PL/SQL Developer中寫好一段SQL程式碼後,按F5,PL/SQL Developer會自動開啟執行計劃視窗,顯示該SQL的執行計劃。2、 檢視總COST,獲得資源耗費的總體印象一般而言,執行計劃第一行所對應的COST(即成本耗費)值,反應了執行這段SQL的總體估計成本,單看這個總成本沒有實際意義,但可以拿它與相同邏輯不同執行計劃的SQL的總體COST進行比較,通常COST低的執行計劃要好一些。 www.2cto.com3、 按照從左至右,從上至下的方法,瞭解執行計劃的執行步驟執行計劃按照層次逐步縮排,從左至右看,縮排最多的那一步,最先執行,如果縮排量相同,則按照從上而下的方法判斷執行順序,可粗略認為上面的步驟優先執行。每一個執行步驟都有對應的COST,可從單步COST的高低,以及單步的估計結果集(對應ROWS/基數),來分析表的訪問方式,連線順序以及連線方式是否合理。4、 分析表的訪問方式表的訪問方式主要是兩種:全表掃描(TABLE ACCESS FULL)和索引掃描(INDEX SCAN),如果表上存在選擇性很好的索引,卻走了全表掃描,而且是大表的全表掃描,就說明表的訪問方式可能存在問題;若大表上沒有合適的索引而走了全表掃描,就需要分析能否建立索引,或者是否能選擇更合適的表連線方式和連線順序以提高效率。5、 分析表的連線方式和連線順序表的連線順序:就是以哪張表作為驅動表來連線其他表的先後訪問順序。表的連線方式:簡單來講,就是兩個表獲得滿足條件的資料時的連線過程。主要有三種表連線方式,巢狀迴圈(NESTED LOOPS)、雜湊連線(HASH JOIN)和排序-合併連線(SORT MERGE JOIN)。我們常見得是巢狀迴圈和雜湊連線。巢狀迴圈:最適用也是最簡單的連線方式。類似於用兩層迴圈處理兩個遊標,外層遊標稱作驅動表,Oracle檢索驅動表的資料,一條一條的代入內層遊標,查詢滿足WHERE條件的所有資料,因此內層遊標表中可用索引的選擇性越好,巢狀迴圈連線的效能就越高。雜湊連線:先將驅動表的資料按照條件欄位以雜湊的方式放入記憶體,然後在記憶體中匹配滿足條件的行。雜湊連線需要有合適的記憶體,而且必須在CBO最佳化模式下,連線兩表的WHERE條件有等號的情況下才可以使用。雜湊連線在表的資料量較大,表中沒有合適的索引可用時比巢狀迴圈的效率要高。

  • 中秋節和大豐收的關聯?
  • 2、法律權利與法律義務的關係是怎樣的?