Oracle釋出一個SQL語句的處理過程
Oracle釋出一個SQL語句的處理過程:
1、將該語句轉化成ASCII等效數字碼
2、將ASCII等效數字碼傳遞給一個雜湊演算法,由該雜湊演算法產生一個單獨的雜湊
3、搜尋當前使用者的session快取中(在PGA中)是否存在相同的雜湊版本,如果存在,就直接執行該語句。這就是fast parse。
4、如果在PGA中沒有命中,查詢其他的session中是否有相同的雜湊,這就需要到共享池的庫快取中對查詢。如果在庫快取中找到相同的雜湊。這就是soft parse。
5、若在3和4中都沒有找到相同雜湊,使用者程式進行語法檢查過程(Syntax Check)。語法檢查主要時檢查語法是否符合SQL Reference Manual中給出的SQL語法。
6、語法檢查透過之後,再進行語義分析過程(Semantic Analysis)。這個過程就是檢查物件的合法性。檢查表是否存在,列是否存在,是否有許可權訪問等等。
7、選擇執行計劃。準備從可用的執行計劃中選擇一個執行計劃,其中包括儲存大綱(srored outline)或物化檢視(materialized view)相關的決定。
8、生成該語句的一個編譯程式碼(p-code)。這完整的整個步驟就是hard parse。
example:
SQL>select * from test ; --hard parse
SQL>select * from TEST ; --hard parse
SQL>select * from test ; --soft parse
SQL>alter session set session_cached_cursors=100;
SQL>select * from test ; --soft parse
SQL>select * from test ; --fast parse
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/143526/viewspace-978157/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle一個SQL語句的處理過程(轉)OracleSQL
- SQL語句的處理過程SQL
- SQL語句的處理過程修正SQL
- ORACLE 查詢語句處理過程(Oracle
- DML 語句處理過程
- oracle處理SQL的過程OracleSQL
- Oracle SQL 語句的執行過程OracleSQL
- 理解oracle執行sql語句的過程OracleSQL
- oracle動態sql語句處理(轉)OracleSQL
- 一條sql語句的執行過程SQL
- 一條SQL語句的優化過程SQL優化
- ORACLE sql 語句的執行過程(SQL效能調整)OracleSQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- oracle自定義過程來獲得完整的sql語句OracleSQL
- CoreData執行過程的sql語句SQL
- 剖析SQL語句的執行過程SQL
- mysql執行sql語句過程MySql
- 淺談SQL語句的執行過程SQL
- SQL語句執行過程詳解SQL
- sql語句執行過程小結SQL
- 分析執行計劃優化SQLSQL語句處理的過程(轉)優化SQL
- SQL語句的解析過程 遊標週期SQL
- Oracle 儲存過程中的DDL語句Oracle儲存過程
- oracle的sql語句OracleSQL
- 10_SQL語句執行過程剖析SQL
- 一個過濾重複資料的sql語句(轉)SQL
- MySQL系列之一條SQL查詢語句的執行過程MySql
- 一個SQL語句的優化SQL優化
- 分析執行計劃最佳化SQLSQL語句處理的過程(轉)SQL
- 使用預處理PreparedStatement執行Sql語句SQL
- 處理DML語句的幾個階段
- 通過xml處理sql語句時對小於號與大於號的處理轉換XMLSQL
- linux上mount一個lv的處理過程Linux
- 通過SQL語句提取儲存過程中的內容SQL儲存過程
- oracle 通過sql profile為sql語句加hintOracleSQL
- mysql如何處理億級資料,第一個階段——優化SQL語句MySql優化
- oracle sql語句OracleSQL
- Oracle-監控sql語句的過載率OracleSQL