删除数千个表会使数据库变慢

时间:2012-07-13 10:25:47

标签: database oracle oracle11g

我正在研究一些问题,即创建数千个表并进行一些测试。

在下一次迭代中,我将丢弃这些表并再次重新生成它。但是通过这些步骤,我的数据库变得非常慢。

即使是我的本地数据库,我只在其中工作,所以它只能多次删除表。

任何人都有任何想法在这种情况下提高数据库性能。我正在使用UI从PL / SQL开发人员那里删除这些表。

我正在使用Oracle 11g。 感谢

1 个答案:

答案 0 :(得分:1)

主要瓶颈可能是PL / SQL Developer 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;
/