【DB筆試面試596】在Oracle中,什麼是執行計劃?

  • 2019 年 10 月 10 日
  • 筆記

題目部分

在Oracle中,什麼是執行計劃?

答案部分

執行計劃指示Oracle如何獲取和過濾數據、產生最終結果集,這是影響SQL語句執行性能的關鍵因素。在深入了解執行計劃之前,首先需要知道執行計劃是在什麼時候產生的,以及如何讓SQL引擎為語句生成執行計劃。

在Oracle中,任何一條語句在解析過程中都會生成一個唯一的數值標識,即SQL_ID。而同一條語句,在解析過程中,可能會因為執行環境的改變(例如某些優化參數被改變)而生成多個版本的游標,不同的游標會有不同的執行計劃。每個游標都會按順序賦予一個序列號,即CHILD_NUMBER,一條語句生成的第一個游標的CHILD_NUMBER為0;相應的,Oracle會為每個執行計劃生成一個HASH值以作區分。而多個不同版本的游標,其執行計劃可能會相同,也可能不同。

本文選自《Oracle程式設計師面試筆試寶典》,作者:李華榮。