SQL語句的執行過程

當發佈一條SQL或PL/SQL命令時,Oracle會自動尋找該命令是否存在於共享池中來決定對當前的語句使用硬解析或軟解析。
一般狀況下,SQL語句的執行過程以下:
a.SQL代碼的語法(語法的正確性)及語義檢查(對象的存在性與權限)。
b.將SQL代碼的文本進行哈希獲得哈希值。
c.若是共享池中存在相同的哈希值,則對這個命令進一步判斷是否進行軟解析,不然到e步驟。
d.對於存在相同哈希值的新命令行,其文本將與已存在的命令行的文本逐個進行比較。這些比較包括大小寫,字符串是否一致,空格,註釋
等,若是一致,則對其進行軟解析,轉到步驟f。不然到d步驟。紅色字體描述有誤應該轉到步驟e(更正@20130905,謝網友keaihuilang指出)
e.硬解析,生成執行計劃。
f.執行SQL代碼,返回結果。
相關文章
相關標籤/搜索