关于SQL Tuning的知识体系
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                关于SQL Tuning的知识体系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                為什么80%的碼農都做不了架構師?>>> ??
要很好的做SQL Tuning的工作,非常有必要理解SQL 優化引擎是如何工作,而SQL執行計劃就是SQL 優化引擎工作的結果。
要讀懂執行計劃,需要知道access path,需要理解join order,join method,還需要知道查詢轉換、查詢重寫。
執行計劃是SQL優化引擎最后選擇的結果,那這個結果是如何選出來的?首先,現在主流的優化引擎都是cost base的,也就是CBO。這里的成本,是cpu cost + io cost。我們暫且只看io cost。
在物理層面上,與IO cost最直接的是,讀多少個數據塊。但在應用層面上,我們看到是需要讀多少行的數據。那這兩者如何聯系起來?統計信息,這里也就回答了,為什么統計信息對CBO 很重要。
在默認情況下,CBO使用統計信息是基于一個數學理論基礎:數據是均勻分布的。當然有特殊,數據有傾斜,因此需要直方圖。
基于以上的內容,初學者做SQL Tuning還是比較困難的,因此Oracle 引入了如SQL Tuning Advisor,SQL Access Advisor等自動優化工具。
簡單sql -》 復雜sql的執行計劃-》 查看執行計劃-》 解讀執行計劃 (解析樹)sql優化引擎-》 RBO & CBO-》 cost = cpu cost + io cost—》 例子-》CBO不是萬能的(過多表鏈接,不能嘗試所有的方案)-》 sql 優化引擎的工作-》 訪問路徑-》 表join的方式(字典)-》 查詢重寫-》 計算成本-》 基本概念(基數,選擇率) -》 統計信息-》 直方圖
轉載于:https://my.oschina.net/huayd/blog/146010
總結
以上是生活随笔為你收集整理的关于SQL Tuning的知识体系的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: vim的巧用---对比操作
- 下一篇: 合并单链表,输出单链表中间元素,判断是否
