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이 있습니다. 예를 들어, 인덱스가 파티션 된 경우 각 파티션이나 서브 파티션을 다시 빌드해야합니다.
그리고 고려해야 할 많은 옵션이 있습니다. 예를 들어 재구성 중에 다른 사용자가 색인을 사용하도록하려면 PARALLEL
옵션을 추가하여 빠르게 재구성하십시오 (그러나 이로 인해 색인의 병렬 설정이 변경되어 문제가 발생할 수 있음).
많은 오라클 전문가들은 인덱스 재 구축이 일반적으로 시간 낭비라고 생각합니다.
p_owner 란 무엇입니까? – Mercer
@Mercer :이 절차를 여러 사용자에게 사용하려는 경우 인덱스 스키마를 지정합니다. –