1

何千ものテーブルを作成し、いくつかのテストを行っている問題に取り組んでいます。

次の反復では、これらのテーブルを削除して、再度再生成します。しかし、これらの手順を実行すると、データベースが非常に遅くなります。

私が働いているだけのローカルデータベースでさえ、テーブルを複数回削除する唯一の効果です。

このシナリオでデータベースのパフォーマンスを改善するアイデアは誰にでもあります。UI を使用して PL/SQL 開発者からこれらのテーブルを削除しています。

Oracle 11g を使用しています。ありがとう

4

1 に答える 1

1

主なボトルネックは、おそらくPL/SQL開発者GUIです。多数のオブジェクトまたはウィンドウを処理する場合は、非常に遅くなる可能性があります。

たとえば、1000個のテーブルを作成した場合:

begin
    for i in 1 .. 1000 loop
        execute immediate 'create table table'||lpad(i,4,'0')||'(a number)';
    end loop;
end;
/

GUIからそれらをドロップするのに70秒かかりましたが、このスクリプトではわずか20秒でした。

begin
    for i in 1 .. 1000 loop
        execute immediate 'drop table table'||lpad(i,4,'0');
    end loop;
end;
/
于 2012-07-17T06:54:57.443 に答える