我舉個 global 索引的例子
查詢 條件 不走 分區鍵這個值
但是 我走另外一個where條件
而且選擇性很高
假設索引高度為3
不跨越分區 掃描3個block +1個 data block
跨越分區 掃描 1000個 分區 *3 +1個data block
掃描要跨越 多個 分區你就建立 global
條件裡不帶上了分區鍵對應的列,對應的列就用GLOBAL
oracle會對主鍵自動建立全局索引
我 有一個查詢
查詢 條件 不走 分區鍵這個值
但是 我走另外一個where條件
總結就是
掃描要跨越 多個 分區
你就建立 global
global 索引是為了解決 跨越 分區掃描的用的
總結:
全局索引:
優點:通過索引檢索,沒有限定分區的謂詞、或跨分區時,性能好點,
缺點:分區維護的時候麻煩,drop分區等維護會失效,dml的時候索引維護成本高,資料大了rebuild也難
local 索引:
優點:通過索引檢索,有限定分區的謂詞、不跨分區時,性能好,分區維護容易,dml的索引維護底,rebuild也友善。
缺點:通過索引檢索,又沒有限定分區的謂詞、或跨分區時,性能不如全局索引
有分區裁剪的,那麼其他列就建立分區索引
就是where 條件裡帶上了分區鍵,對應的列 就用LOCAL
沒有分區裁剪的,那麼列就建立global 索引
轉載于:https://www.cnblogs.com/zhaoyangjian724/p/3798102.html