當對分割槽表進行 一些操作時,會造成索引失效。
當有truncate/drop/exchange 操作分割槽 時全域性索引 會失效。
exchange 的臨時表沒有索引,或者
有索引,沒有用including indexes的關鍵字,會導致區域性的索引失效,就是某個分割槽失效
重建區域性索引只能用alter index local_idx rebuild partition p1這樣的方式
分割槽表split的時候,如果max區中已經有記錄了,這個時候split就會導致有記錄的新增分割槽的區域性索引失效!
查尋某個分割槽表中 各個分割槽 索引狀態 usable/unusable
selectindex_name, partition_name, status
from
user_ind_partitions
where index_name =
'indexname';
--重建索引
--local索引重建
select
b.table_name,
a.index_name,
a.partition_name,
a.status,
'alter index
'|| a.index_name ||
'rebuild partition
'||partition_name ||';
'重建列
from
user_ind_partitions a, user_part_indexes b
where a.index_name =
b.index_name
and b.table_name in ('
part_tab_split')
and status =
'unusable
'order
byb.table_name, a.index_name, a.partition_name;
--全域性索引重建
alter
index idx_part_split_col3 rebuild;
在針對truncate等 操作時直接更新 index 也可以搞定。
alter table part_tab_trunc truncate partition p2 update global indexes;
Oracle分割槽表
1 範圍分割槽 range create table range part tab id number,deal date date,area code number,contents varchar2 4000 partition by range deal date partition p201...
Oracle 分割槽表
我們知道在資料庫中,當一張表的資料量增多時,資料的查詢就會變慢,從而影響應用程式的效能。這時我們應該考慮將表分割槽,表分割槽後在邏輯上仍然屬於一張表,只是在物理上儲存在多個檔案中。範圍分割槽將資料基於範圍對映到每乙個分割槽,這個範圍是你在建立分割槽時指定的分割槽鍵決定的。這種分割槽方式是最為常用的,...
oracle分割槽表中本地索引和全域性索引的適用場景
背景 分割槽表建立好了之後,如果需要最大化分割槽表的效能就需要結合索引的使用,分割槽表有兩種索引 本地索引和全域性索引。既然存在著兩種的索引型別,相信存在即合理。既然存在就會有存在的原因,也就是在特定的場景中就更能發揮出索引的效能的 本文件通過測試,總結出兩種索引的適合的場景 測試環境 資料庫版本 ...