Oracle執行SQL查詢語句的步驟

Oracle執行SQL查詢語句的步驟

若是用戶在SQL*Plus下輸入了以下查詢語句:SELECT * FROM dept;緩存

查詢語句的處理主要包括三個過程:編譯(parse)、執行(execute)和提取數據(fetch)。服務器

  l 編譯:在進行編譯時,服務器進程將會將SQL語句的正文放入共享池(shared pool)的庫高速緩存(library cache)中並將完成如下處理。oracle

首先在共享池中搜索是否有相同的SQL語句(正文),若是沒有就進行後續的處理。fetch

  •     檢查該SQL語句的語法是否正確。
  •     經過查看數據字典來檢查表和列的定義。
  •     對所操做的對象加編譯鎖(parse locks),以便在編譯語句期間,這些對象的定義不被改變。
  •     檢查所引用對象的用戶權限。
  •     生成執行該SQL語句所需的優化和執行計劃(執行步驟)。
  •     將SQL語句和執行計劃裝入共享SQL區。

以上的每一步操做都是在處理正確時才進行後續的處理。若是不正確,就返回錯誤。優化

  l 執行:oracle服務器進程開始執行SQL語句是由於它已得到了執行的SQL語句所須要的所有資源和信息。spa

  l 提取數據:oracle服務器進程選擇所需的數據行,並在須要時將其排序,最後將結構返回給用戶(進程)。對象

相關文章
相關標籤/搜索