Oracle

oracle 全域索引與分區表上的本地索引

  • February 26, 2016

我有一個在日期列(created_time)上按月劃分範圍的表。我想知道在此列上創建全域索引或在此列上創建本地索引更有效。你能解釋一下為什麼嗎?

謝謝,

肖恩·阮

CREATED_TIME如果您已經在分區,為什麼還要索引CREATED_TIME?如果您定期查詢數據以查找遠小於分區粒度的日期範圍,也就是說,您定期查詢幾個小時的日期範圍,您可能需要調整分區策略以更頻繁地創建分區。如果您以比舊數據更小的間隔查詢最近的數據——例如,您定期按過去一天的小時聚合、過去一周按天聚合、以及過去一年按月聚合——您可能希望合併更小的隨著時間的推移,分區一起(可能除了壓縮舊分區)。

此外,您確定要建立索引CREATED_TIME而不是創建一個物化視圖,以比分區更小的間隔預先聚合數據嗎?例如,如果您按小時、天和月聚合各種查詢中的數據,通常最好通過創建一個以最小粒度(小時)和 Oracle 維度對象預先聚合數據的物化視圖來提供服務這允許查詢重寫使用物化視圖將每小時的行聚合為每日或每月的結果,而不是嘗試從基表中讀取所有數​​據。

引用自:https://dba.stackexchange.com/questions/10607