admin

禁用并稍后启用Oracle中的所有表索引

sql

如何在Oracle中的给定架构/数据库中禁用并稍后启用所有索引?

注意:这是为了使sqlldr运行更快。


阅读 240

收藏
2021-05-10

共1个答案

admin

这使得没有文件就无法使用索引:

DECLARE
  CURSOR  usr_idxs IS select * from user_indexes;
  cur_idx  usr_idxs% ROWTYPE;
  v_sql  VARCHAR2(1024);

BEGIN
  OPEN usr_idxs;
  LOOP
    FETCH usr_idxs INTO cur_idx;
    EXIT WHEN NOT usr_idxs%FOUND;

    v_sql:= 'ALTER INDEX ' || cur_idx.index_name || ' UNUSABLE';
    EXECUTE IMMEDIATE v_sql;
  END LOOP;
  CLOSE usr_idxs;
END;

重建将是相似的。

2021-05-10