我們使用oracle數據庫開發的過程當中,我們會發現注重sql優化的人,同樣一個系統,性能快了很多。下面介紹一些常用的sql優化機巧和注重點。
1、表盡量使用別名,字段盡量使用別名.字段名,這樣子,可以減少oracle數據庫解析字段名。而且把不需要的字段名剔除掉,只保留有用的字段名,不要一直使用 select *。
2、關聯查詢時,選擇好主表。oracle解析器對from 後面的表的解析是從右到左的,所以把數據量較小的表作為主表,然後和其他表進行關聯,假如存在三個以下表,把同時交叉關聯的表作為主表,提高查詢效率。
3、where 條件後面的的條件解析是從下向上,從後先前解析執行的,所以可以把過濾數據量較多的條件放在最後面。
4、多利用表中數據行的rowid,rowid代表着表中數據存在的物理地址。例如刪除重複記錄的時候,可以根據rowid進行刪除。
5、減少對錶的查詢,特別在子查詢中,能盡量少重複訪問表,就減少。
6、避免使用耗資源的操作,如distinct、Union、minus等這種需要全表查詢的操作。
7、優化分組group by ,對group by字段要進行添加鎖引,如果分組當中含有查詢條件,要改寫為where條件進行過濾後,再進行分組,而不是直接進行 having 條件。
8、用EXISTS替代IN、用NOT EXISTS替代 NOT IN,因為 not in是低效的,它必須對該字段的全部數據進行排序。
9、要合理利用索引字段提高查詢效率。特別是常用的關聯字段可以增加索引,主鍵、或者某些唯一字段。
10、利用>=替代>,因為>=可以直接定位到=的位置,而大於必須先定位位置,然後再查詢下一個數據。耗時不一樣。
11、最後一個一定要學會查看執行計劃,查看相關查詢條件是否進入索引,找出問題所在,定位問題。
歡迎大家討論補充

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/280146.html
微信掃一掃
支付寶掃一掃