【Oracle】创建用于测试的大表

来源:互联网 发布:hash一致性算法 编辑:程序博客网 时间:2024/05/22 13:01

个人实验的时候有时会用到一些大表,在此分享用dba_objects来创建测试大表的方法:

首先建立测试表

SYS@ORCL>create table test nologging as select rownum id,a.* from dba_objects a where 1=2;

 

Table created.

插入500万条数据:

SYS@ORCL>declare

  l_cnt number;

  l_rows number:=&1;

begin

  insert /*+ append */ into test select rownum,a.* from dba_objects a;

  l_cnt:=sql%rowcount;

  commit;

  while(l_cnt<l_rows)

  loop

    insert /*+ append */ into test select rownum+l_cnt,

           owner,object_name,subobject_name,

           object_id,data_object_id,

           object_type,created,last_ddl_time,

           timestamp,status,temporary,

           generated,secondary

           from dba_objects

           where rownum<=l_rows-l_cnt;

           l_cnt:=l_cnt+sql%rowcount;

     commit;

   end loop;

 end;  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21  

 22  /

Enter value for 1: 5000000

old   3:   l_rows number:=&1;

new   3:   l_rows number:=5000000;

 

PL/SQL procedure successfully completed.

2 0
原创粉丝点击