Oracle 開發人員分析SQL 執行計畫的關注點

來源:互聯網
上載者:User
     繁瑣複雜的執行計畫、可能迷了開發人員的眼、導致一條性感又傻X的SQL 在伺服器上跑得特歡樂
     有介於此、重點抓住幾個部分、至於其他的嘛、當然是、非禮勿視咯、、
     
      ㈠ 返回行的數量
        
        Oracle最佳化器是基於成本的、評估成本的一個主要指標便是查詢多少行
        
        一般的、傳回值在100W或者大表傳回值超過總記錄50%、可最佳化的空間就非常小
        

        標記圖為:

                         

     ㈡ 返回行與邏輯讀的比率
        
        經驗值是:每行5個以下邏輯讀開銷是可接受的
        
        標記圖為:
        每行需要花費7 個邏輯讀

                        

     ㈢ 彙總查詢
     
     
        
        這類查詢有 2 點需要注意:
        ① 返回行應是掃描表的行數而不是1
        ② 一般的最佳化技巧:把索引當成瘦表而無需再回表(回表標識為 Table Access By index rowid)
        
        標記圖為:

                         

     ㈣ 預測行的準確度
     
     
     
        執行計畫裡有個列叫:Rows、這是Oracle 預測返回的行、有些時候或許不是特馬準備
        記得拿該值和真正返回的行比較、如果確實不準確、應該去找原因、比如統計資訊、長條圖、高水位...等
        
        標記圖為:
                         

     ㈤ 謂詞資訊
        
        
        Predicate Information 有2 個取值:filter 和 access、其中、access 一般為索引讀或hash join
        
        關注此鳥、最重要的在於、查看是否有發生資料類型轉換、這抑制了索引、也增大了開銷
        
        標記圖為:

                         

     ㈥ 動態採樣
     
     
        
        表統計資訊到期變質了、或者壓根就沒分析過表
        
        標記圖為:

                         


     好了、先寫這麼多、後續再補上

By David Lin 
2013-06-21
Always be a first-rate version of yourself,instead of a second-rate version of someone else

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.