質問

方法を教えてくださいdisable以降のすべての指標を与えられたスキーマ/データベースにOracle?

注意:これはsqlldrの実行が速くなります。

役に立ちましたか?

解決

この指数は使用不可のファイル:

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;

の再構築するsimiliar.

他のヒント

組み合わせ3回答とでは、selectステートが実行されないのDDL)

set pagesize 0

alter session set skip_unusable_indexes = true;
spool c:\temp\disable_indexes.sql
select 'alter index ' || u.index_name || ' unusable;' from user_indexes u;
spool off
@c:\temp\disable_indexes.sql

インポートを行う...

select 'alter index ' || u.index_name || 
' rebuild online;' from user_indexes u;

注この輸入が起こるのと同じ(sqlplus)。
の場合は呼び出し"imp"すると別セッションだけを利用する必要があり"の変更システム"の代わりに"変更セッション"(覚えていけるパラメータの使い方に見つかります。

ご利用の場合は平行でないパスを直接荷重を検討し、ベンチマークは下の指標は、特に、指標のみをカバー数とする。Oracle仕組みになって効率的な維持管理の指数にパスを直接ます。

なっついてもアドバイスの指数が使用不可能ではなく落とします。少ない偶発的な再現する。

下からもアクセスできます。 http://forums.oracle.com/forums/thread.jspa?messageID=2354075

alter session set skip_unusable_indexes = true;

alter index your_index unusable;

インポートを行う...

alter index your_index rebuild [online];

無数の組み合わせで自分だけの制約Oracleはスを作成します。あるコマンドインデックスを構築しておくことununsableして再構築の指標ともかく、なんとともにスクリプト内で落とし、スを作成します。で利用できますuser_indexesとuser_ind_columnsをすべて取得し、指数のスキーマを使dbms_metadata:

select dbms_metadata.get_ddl('INDEX', u.index_name) from user_indexes u;

"という場Oracle11gで、チェックアウトしたいとし dbms_index_utl.

組み合わせの回答:

を作成するsqlをすべて指数を使用でき:

alter session set skip_unusable_indexes = true;
select 'alter index ' || u.index_name || ' unusable;' from user_indexes u;

インポートを行う...

select 'alter index ' || u.index_name || ' rebuild online;' from user_indexes u;

実際に試したほうがよいでしょうsqlldrのSKIP_INDEX_MAINTENANCEパラメータとします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top