0
由於Oracle不支持禁用普通索引,因此我希望在批量更新之前以編程方式將所有索引刪除,並在更新完成後重新創建它們。我想這會需要一些自定義的PL/SQL。任何人都可以提供解決方案嗎?也許這裏有人已經寫了這樣一個腳本。編程式刪除並重新創建批量更新的Oracle索引
僅供參考,以下是SQL Server的解決方案:Automatically Drop and Recreate current indexes。
由於Oracle不支持禁用普通索引,因此我希望在批量更新之前以編程方式將所有索引刪除,並在更新完成後重新創建它們。我想這會需要一些自定義的PL/SQL。任何人都可以提供解決方案嗎?也許這裏有人已經寫了這樣一個腳本。編程式刪除並重新創建批量更新的Oracle索引
僅供參考,以下是SQL Server的解決方案:Automatically Drop and Recreate current indexes。
set head off
set echo off
set pages 1000
set lines 300
set feedback off
spool index_unusable.sql
select 'alter index ' || index_name || ' unusable;' from user_indexes where table_name='MY_TABLE';
spool off
@index_unusable.sql
你批量導入設置這個在您的會話之前:
alter session set skip_unusable_indexes=true;
在導入後:
set head off
set echo off
set pages 1000
set lines 300
set feedback off
spool index_rebuild.sql
select 'alter index ' || index_name || ' rebuild;' from user_indexes where table_name='MY_TABLE';
spool off
@index_rebuild.sql
如果您有需要禁用它們,以及使用約束:
alter table mytable modify constraint constraint_name DISABLE keep index;