1. 普通表轉分割槽表(大表-2g,多於1000萬條記錄)
2. 索引(減少非索引掃瞄)
建立索引在約束條件列,選擇性高列,被驅動表(內錶)連線列(驅動表的連線列不一定)
結果集在總行數的2%-4%,應建索引(編號,日期,外來鍵)
函式索引- query_rewrite_integrity = trusted,query_rewrite_enabled = true,
bitmap/bitmap join 索引- star_transformation_enabled=true,bitmap join index 將join資訊儲存在index裡,適用於dim/fact join)
本地索引-索引字段=分割槽字段,不保證唯一性,
復合索引-leading column/selectivity
3. 減少遠端資料庫(db link-collocated in line view~subquery in remote db)的訪問(採用mqt或臨時表,實現hash join)
4. 分拆儲存過程,以便並行執行。
5. 歸檔部分歷史資料到備份表
6. 加大commit的行數
7. select/fetch bulk collect into,forall insert/delete/update
8. hints(cbo,統計資訊要更新)
9. merge 代替 update and insert(大表更新大表)
10. 消除佔位操作和開關操作(如果存在)
11. 消除繫結變數(會導致執行計畫不是最優)
12. 使用star query(bitmap index in fact table, star_transformation_enabled=true)
mysql 優化策略 mysql的優化策略有哪些
第一 優化你的sql和索引 1.善用explain,看看自己寫的sql到底要涉及到多少表,多少行,使用了那些索引,根據這些資訊適當的建立索引 2.善用不同的儲存引擎,mysql有多種不同的儲存引擎,innodb,aria,memory根據需要給不同的表選擇不同的儲存引擎,比如要支援transacti...
not in 優化策略
總結們在csdn社群上對於not in的優化策略,整理如下,備查。select from emp where emp no not in select emp no from emp bill 要求用兩種 sql寫法優化上面 sql。方法一 select from emp a where notex...
SQL優化策略
下面是再河北優化時候採用的sql優化策略,按照該策略可以使效能有大幅提高,如 4 where 子句中出現is null或者is not null時,oracle會停止使用索引而執行全表掃瞄。可以考慮在設計表時,對索引列設定為notnull。這樣就可以用其他操作來取代判斷null的操作。5 當萬用字元...