Oracle執行SQL查詢語句的步驟

Oracle執行SQL查詢語句的步驟

查詢語句和其餘語句不一樣,若是查詢語句執行成功,會返回查詢結果,而其餘類型的SQL語句只是返回執行成功或者失敗的信息。

Oracle處理查詢語句分爲3大階段:編譯(parse)、執行(execute)、提起數據(fetch)。
  • 編譯(parse):在進行編譯時,服務器進程會將SQL語句的內容放入共享池(shared pool)的庫高速緩存(library cache)中,並完成如下處理:
    • 首先在共享池中查詢是否包含相同的SQL語句,若是沒有就進行後續的處理。
    • 檢查SQL語句語法是否正確。
    • 查看數據字典來檢查SQL語句相關表和列的定義。
    • 對 SQL語句所操做的對象添加編譯鎖(parse locks),使得在編譯語句期間,這些對象的定義不會改變。
    • 檢查用戶對SQL語句所引用的對象是否有權限。
    • 生成該SQL的執行計劃。
    • 將SQL語句和執行計劃放入共享的SQL區。
  • 執行(execute):Oracle服務器進程開始執行編譯後的SQL語句。
  • 提取(fetch): Oracle服務器進程選擇所需的數據行,並在須要時將其排序,最後將結果返回給用戶進程。
相關文章
相關標籤/搜索