4
我想創建檢索我的表的所有索引的過程和重建創建檢索我的表的所有索引的過程和重建
我會檢索所有的索引與此查詢:
select index_name from user_indexes where table_name='your_table_name'
和我用這個查詢重建:
alter index <index_name> rebuild;
Thx。
我想創建檢索我的表的所有索引的過程和重建創建檢索我的表的所有索引的過程和重建
我會檢索所有的索引與此查詢:
select index_name from user_indexes where table_name='your_table_name'
和我用這個查詢重建:
alter index <index_name> rebuild;
Thx。
create or replace procedure rebuild_indexes(
p_owner in varchar2,
p_table_name in varchar2
) as
begin
for indexes_to_rebuild in
(
select index_name
from all_indexes
where owner = p_owner
and table_name = p_table_name
) loop
execute immediate 'alter index '||p_owner||'.'
||indexes_to_rebuild.index_name||' rebuild';
end loop;
end;
/
雖然這隻適用於最簡單的索引。關於重建有很多restrictions。例如,如果索引是分區的,則需要重建每個分區或子分區。
並且您可能需要考慮許多選項。例如,使用ONLINE
如果你希望別人在重建使用索引,增加一個PARALLEL
選擇重建速度更快(但是這也改變了指數的並行設置,這可能會導致問題)等
而且牢記許多頂尖的Oracle專家認爲重建索引通常是浪費時間。
p_owner是什麼? – Mercer
@Mercer:它特定索引架構,以防您想要爲多個用戶使用此過程。 –