1.parse(解析)
軟解析/硬解析(第一次執行sql需要進行硬解析)
1)從共享池的庫緩沖區搜索,確定該語句是否曾經執行過,凡是執行過的sql語句,oracle會使用hash函數進行計算,產生一個很小的文本記錄。如果是第一次執行,則進入第二步;
2)檢查語法、權限等等(權限的信息是存放在oracle的數據字典中),oracle先從共享池的數據字典緩沖區中搜索,如果沒有找到,再從數據文件(system表空間的數據文件)中讀取,然后存放在共享池的數據字典緩沖區中,以便共享;
3)分析過程中,對訪問到的表進行鎖操作,目的是為了保護表的結構不被修改;
4)oracle優化器會根據數據的存儲結構(表的存儲結構、索引)統計信息等。計算各種讀取的代價,選擇一條最佳路徑(代價最低),生成執行計劃,同時編譯并存儲在共享池的庫緩沖區中,以便共享。
2.bind(綁定變量)
3.execute(執行)
先從數據緩沖區查找數據,如果沒有,再從數據文件中讀取數據到數據緩沖區、保持,以便共享。
4.fetch
把結果返回給用戶。
