上海網(wǎng)站建設哪家便宜外鏈代發(fā)免費
目錄
1、SQL解析詳解
2、演示示例
3、啟用Oracle跟蹤事件
4、查看改造后SQL性能對比結果
更多技術干貨,關注個人博客吧
1、SQL解析詳解
SQL解析是數(shù)據(jù)塊處理SQL語句不可缺少的步驟,是在解析器中執(zhí)行的。將SQL轉換成數(shù)據(jù)庫可以執(zhí)行的低級指令。
SQL解析分為硬解析和軟解析。
硬解析一般是數(shù)據(jù)庫第一次執(zhí)行,在共享池池中沒有發(fā)現(xiàn)過執(zhí)行的歷史,如果SQL發(fā)生語法變動或者修改,都會觸發(fā)硬解析。會對SQL進行完全解析。包括語法分析、語義分析,生成新的執(zhí)行計劃。
主要的步驟:
語法分析:檢查SQL的語法是否正確。
語義分析:檢查SQL是否正確。比如table是不是存在、用戶是不是授權等。
優(yōu)化:重新生成新的執(zhí)行計劃。
執(zhí)行計劃緩存:將執(zhí)行計劃緩存。如果下次重新執(zhí)行該SQL會重復使用。不用再次生成新的執(zhí)行計劃。
軟解析:
軟解析是歷史執(zhí)行過該SQL,已經(jīng)在共享池shared pool 存在,不用重新生成新的執(zhí)行計劃。而是使用共享池中的執(zhí)行計劃。
主要的步驟:
查詢緩存:在共享池中查找該SQL或者過程塊,是不是已經(jīng)存在共享池中。
使用緩存的執(zhí)行計