Oracle資料庫SQL優化之概述

2021-10-25 06:41:19 字數 1276 閱讀 9514

sql優化是每個後端面試均會碰到的面試題目,怎麼回答好這個問題,因人而異。一般毛竹是這麼回答的,首先會從執行計畫入手,然後看i/o、cpu,再看錶關聯,說的再詳細一點就是全表掃、有沒有走索引,或者從業務入手…是不是很業餘,很明顯答的太泛了,這肯定不是面試官想要得到的結果了。那該怎麼回答那,我其實到現在也沒有更好的答案,那大家是不是就奇怪了,那本篇到底要幹什麼,好啦好啦,不賣關子了,當然要分享一點幹活啦,那就開始吧。

一、自己整理的sql腦圖

19年那會是從事oracle開發的第三個年頭,開始整理了一些東西,其中有個文件已經有90多頁,但不便於分享,只好將自己整理的sql優化腦圖分享給各位啦,請接招:

這個圖是經過反反覆覆修改過的,就在剛才還再修改,後續可能還要修改。(ps:偷笑)

二、表達與溝通技巧

是不是又有點懵逼了,毛竹到底要幹嘛,不是要說sql優化嗎,怎麼扯到了溝通技巧。沒錯沒錯,先說表達溝通技巧,完了再談談怎麼回答好這個題目。

表達和漫無目的的閒聊不同,由於期望達到某種目的的表達能力,可分為三個層次:1.條理清晰;2.有說服力;3.有影響力。高效表達的三步法:1.定主題;2.套用框架,快速整理表達思路;3.資料+故事讓表達更具說服力。

三、回答問題

上面剛買了點關子,言歸正傳,套用上面表達技巧,下面談談sql優化:

1.主題:sql優化

2.套用框架,那什麼框架那,在這裡我推薦:問題-原因-解決方案即what-why-how方案;比如:sql優化索引部分(what),每個索引頁面中的行都會含有邏輯指標,以便加速檢索物理資料(why),不走索引導致全表掃瞄寫法的規避、索引重建等(how)

3.資料+故事,這個需要舉具體例子,比如毛竹舉個之前優化遇到的例子,有乙個查詢必須用到每天的抄表資料表,但抄表資料表由於是原始資料,資料量大,表關聯當然會導致sql慢,毛竹從業務角度出發,優化了業務,業務表增加一字段並稍微改了儲存資料的方式,優化前查詢1000條資料需要30s,優化後查詢同樣1000條資料只需要2s,是不是資料+故事,由於時間有點長了,這個資料可能稍微有點問題,但真的有這麼誇張。

四、寫在最後

其實本篇題目就叫sql優化概述,所以我也不會說很具體怎麼回答這個問題啦,後續我打算從執行計畫和統計資訊部分著重入手,執行計畫部分會更加詳細介紹,等執行計畫和統計資訊講完後,再來回答這個問題。下篇預告,執行計畫,給我幾天時間讓我好好整理整理思路。

資料庫優化之SQL優化

sql優化 在我們書寫sql語句的時候,其實書寫的順序 策略會影響到sql的效能,雖然實現的功能是一樣的,但是它們的效能會有些許差別。選擇最有效率的表名順序 資料庫的解析器按照從右到左的順序處理from子句中的表名,from子句中寫在最後的表將被最先處理 在from子句中包含多個表的情況下 如果三個...

資料庫效能優化之SQL優化

優化目標 減少 io 次數 io永遠是資料庫最容易瓶頸的地方,這是由資料庫的職責所決定的,大部分資料庫操作中超過90 的時間都是 io 操作所占用的,減少 io 次數是 sql 優化中需要第一優先考慮,當然,也是收效最明顯的優化手段。降低 cpu 計算 除了 io 瓶頸之外,sql優化中需要考慮的就...

oracle資料庫優化輔助SQL語句

具體詳情請看下文 分析。查詢正在執行的sql語句 select osuser 電腦登入身份,program 發起請求的程式,username 登入系統的使用者名稱,schemaname,b.cpu time 花費cpu的時間,status,b.sql text 執行的sql,b.www.cppcns...