最佳化scenarios
2. 索引失效,如where lower(name)=’ssss’, name上的索引會失效。 或者隱式的資料型別轉換:where item_id=12345, 這裡item_id是varchar2, 就會先隱式的轉換成數字型,索引失效了。
3. PLSQL裡的程式給臨時錶轉載了很多資料,但在程式裡沒有對錶進行分析,oracle走了錯誤的表連線,本來該用hash_join, 用了nested_loop, 嚴重影響效能。
4. 重新設計索引,可考慮把查詢中經常用到的列加到索引中,oracle掃描時就會只掃描index: full index scan,不用掃描資料段了。
5. PLSQL裡的多表複雜連線,拆分成幾個小的連線,用上臨時表儲存中間資料。
6. 表的設計問題,example:
三張表幾乎都幾千萬行, 找出在ITEM表裡的但沒存在LINK, ITEM_LINK 裡已經連結好了的ITEM_ID, 下面第一種方法是傳統方法,用not exists直觀, 第二種是用左外連線. 但從兩種方法看效率都不高, 都要大量的連線,要nested loop. 也許修改表結構是最好的選擇了,給ITEM表加個欄位,如LINK_STATUS, 在ITEM_LINK,LINK已經link了,就給這個欄位置位.以後再來判斷就不需要用not exists來判斷是否在LINK,ITEM_LINK表裡已link了!
(本來要跑10分鐘,加了status欄位後,30秒。)
7. 找出效能低效的SQL語句:
select ELAPSED_TIME,EXECUTIONS,FIRST_LOAD_TIME,ELAPSED_TIME/decode(executions,0,1,executions)/1000000/60 "Mins", sql_text from V$SQL where module='JDBC Thin Client' order by 4 desc
Continue….
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14377/viewspace-1060120/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Two useful scenarios of git stashiOSGit
- Backup and Recovery Scenarios (Doc ID 94114.1)iOS
- 15 Oracle Data Guard Scenarios 保護場景OracleiOS
- 11R2-DataGuard Scenarios.主備庫的閃回iOS
- 11R2-DataGuard Scenarios.Failover後配置邏輯備庫iOSAI
- 11R2-DataGuard Scenarios.DG中應用閃回技術iOS
- 論文翻譯:2018_Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk ScenariosiOS
- Unity效能最佳化CPU最佳化Unity
- MySQL最佳化之連線最佳化MySql
- 前端效能最佳化——圖片最佳化前端
- Unity效能最佳化GPU渲染最佳化UnityGPU
- SQL效能最佳化之索引最佳化法SQL索引
- 編譯器最佳化丨Cache最佳化編譯
- 效能最佳化之SQL語句最佳化SQL
- Oracle效能最佳化之SQL最佳化(轉)OracleSQL
- Unity效能最佳化記憶體最佳化Unity記憶體
- Oracle最佳化之單表分頁最佳化Oracle
- MySQL最佳化之系統變數最佳化MySql變數
- Oracle效能最佳化之應用最佳化(轉)Oracle
- Oracle效能最佳化之最佳化排序操作(轉)Oracle排序
- cuda程式最佳化-2.訪存最佳化
- GreatSQL最佳化技巧:半連線(semijoin)最佳化SQL
- Mysql 最佳化MySql
- RouterOS最佳化ROS
- oracle最佳化Oracle
- oracle 最佳化Oracle
- dotween最佳化
- TCP最佳化TCP
- spfa最佳化
- SQL最佳化SQL
- 最佳化方案
- mysql最佳化MySql
- sts 最佳化
- webpack最佳化Web
- 最佳化指令
- jQuery最佳化jQuery
- 白屏最佳化
- SQL最佳化案例-使用with as最佳化Subquery Unnesting(七)SQL