发布网友 发布时间:2022-04-08 19:56
共2个回答
懂视网 时间:2022-04-09 00:17
此脚本首先找到连接用户失效的索引,并在线重建.
create or replace procedure index_rebuild as
cursor mycur is
select *
from user_indexes
where status = ‘UNUSABLE‘;
myrec user_indexes%rowtype;
vsql varchar(100);
begin
open mycur;
while mycur%found
loop
fetch mycur
into myrec;
dbms_output.put_line(‘index ‘ || myrec.index_name || ‘ is invalide ‘);
vsql := ‘alter index ‘ || myrec.index_name || ‘ rebuild online‘;
dbms_output.put_line(vsql);
execute immediate vsql;
end loop;
close mycur;
end index_rebuild;
oracle重建失效索引
标签:
热心网友 时间:2022-04-08 21:25
随着表的增长,where条件出来的数据太多,大于15%,使得索引失效(会导致CBO计算走索引花费大于走全表)
统计信息失效 需要重新搜集统计信息
--重新搜集统计信息:Analyze table tablename compute statistics;
3. 索引本身失效 需要重建索引
--重建索引:ALTER INDEX IDX_TEST_C1 REBUILD;
索引失效一般有以上几个原因: