oracle處理SQL的過程
任何SQL語句的執行,都會經過Parse,execution,fetch三個階段.
Parse階段:檢查SQL語句的語法和語義,生成SQL的執行計劃,並放到share pool內.使用者程式將SQL語句傳送到伺服器程式:(1)搜尋share pool 內的library cache,檢查是否存在相同的SQL.相同的話,就可以直接執行.(2)如果library cache內沒有相同的SQL,那麼檢查該 SQL,生成執行計劃,完成虛擬碼編譯.需要若干次系統資料字典的訪問.所以share pool內必須要有dictionary cache.(3)申請各種需要的系統資源,所,快取塊等操作.
execution階段:按照生成的執行計劃中所安排的步驟執行SQL:(1)確定處理的資料所在資料塊,是否已經被讀取到db cache內.如果已經存在於db cache內,則直接提取資料.(2)若資料不在db cache內,則dbwr將資料從資料檔案讀取到db cache內.
fetch階段:被選擇行所在資料塊將被讀取到db cache中.伺服器程式將被查詢或處理的資料返回到使用者程式.還有:(1)資料排它型別鎖的申請和獲予,防止其他使用者修改相同資料.(2)將資料變化內容寫到重做日誌緩衝區.(3)複製db cache中資料塊的原始值到 undo tablespace中,修改或將更新資料寫到db cache中.
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24214296/viewspace-1035133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle一個SQL語句的處理過程(轉)OracleSQL
- SQL語句的處理過程SQL
- Oracle釋出一個SQL語句的處理過程OracleSQL
- SQL語句的處理過程修正SQL
- oracle 的DML命令的詳細處理過程Oracle
- ORACLE 查詢語句處理過程(Oracle
- 【SQL】Oracle SQL處理的流程SQLOracle
- Oracle SQL處理OracleSQL
- oracle taf unknown 問題處理過程Oracle
- ORACLE資料庫壞塊的處理 (一次壞快處理過程)Oracle資料庫
- 異常處理過程
- 分散裝運處理的過程
- pl/sql developer除錯儲存過程報錯處理SQLDeveloper除錯儲存過程
- 詳述一條SQL引發的高CPU故障處理過程SQL
- oracle 案例-控制檔案丟失故障處理過程Oracle
- Oracle一次縮小表空間的處理過程Oracle
- DML 語句處理過程
- Nucleus中斷處理過程!!!!
- python中PCA的處理過程PythonPCA
- DOM在Ahooks中的處理過程Hook
- OnWndMsg函式的處理過程函式
- 【故障處理】一次RAC故障處理過程
- Oracle 單個表查詢速度極慢處理過程Oracle
- Oracle SQL 語句的執行過程OracleSQL
- 資料庫變慢的處理過程資料庫
- 【原始碼】Redis命令處理過程原始碼Redis
- 某次BW 異常處理過程
- ora-14452處理過程
- HSG80故障處理過程
- ora-04031處理過程
- oracle??邏輯DG同步卡住,session等待row cache lock的處理過程OracleSession
- oracle crs監聽狀態為offline處理過程Oracle
- oracle儲存過程中單引號及字串拼接處理Oracle儲存過程字串
- STS(SQL Tuning Set)匯入匯出過程及錯誤處理SQL
- oracle最佳化sql的內部過程OracleSQL
- 理解oracle執行sql語句的過程OracleSQL
- Oracle Pl/SQL 之 儲存過程OracleSQL儲存過程
- Oracle密碼過期處理Oracle密碼