【Oracle】利用笛卡尔积创建千万级表的全记录

执行语句:

复制代码
-- tag表结构
create
table tag( id number(12), name nvarchar2(20), primary key(id) )
-- tag充值
insert into tag select rownum, dbms_random.String('*',dbms_random.value(6,20)) from dual connect by level<1001
--用户表结构 create table customer( id number(12), name nvarchar2(20), primary key(id) )
--用户表充值
insert into customer select rownum, dbms_random.String('*',dbms_random.value(6,20)) from dual connect by level<20001
--利用笛卡尔积创建连接表 create table customer_tag as select rownum as id,tag.id as tid,customer.id as cid from tag,customer where mod(tag.id,2)=0
--连接表加主键 alter table customer_tag add constraint pk_customer_tag primary key (id);
--连接表设索引
create index idx_tid_cid on customer_tag(tid,cid);
复制代码

执行记录:

复制代码
SQL> set timing on;
SQL> create table tag(
  2      id number(12),
  3      name nvarchar2(20),
  4      primary key(id)
  5  );

表已创建。

已用时间:  00: 00: 00.01
SQL> insert into tag
  2  select rownum,
  3         dbms_random.String('*',dbms_random.value(6,20))
  4  from dual
  5  connect by level<1001;

已创建 1000 行。

已用时间:  00: 00: 00.08
SQL> commit;

提交完成。

已用时间:  00: 00: 00.00
SQL> create table customer(
  2      id number(12),
  3      name nvarchar2(20),
  4      primary key(id)
  5  );

表已创建。

已用时间:  00: 00: 00.01
SQL> insert into customer
  2  select rownum,
  3         dbms_random.String('*',dbms_random.value(6,20))
  4  from dual
  5  connect by level<20001;

已创建 20000 行。

已用时间:  00: 00: 00.27
SQL> commit;

提交完成。

已用时间:  00: 00: 00.01
SQL> create table customer_tag
  2  as
  3  select rownum as id,tag.id as tid,customer.id as cid from tag,customer where mod(tag.id,2)=0;

表已创建。

已用时间:  00: 00: 03.91
SQL> select count(*) from customer_tag;

  COUNT(*)
----------
  10000000

已用时间:  00: 00: 00.10
SQL> alter table customer_tag add constraint pk_customer_tag primary key (id);

表已更改。

已用时间:  00: 00: 03.90
SQL> create index idx_tid_cid on customer_tag(tid,cid);

索引已创建。

已用时间:  00: 00: 04.55
SQL> commit;

提交完成。

已用时间:  00: 00: 00.00
SQL>
复制代码

END

posted @   逆火狂飙  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2020-01-29 [Oracle/sql]查看当前用户名下有多少表 以及查看表字段信息
2020-01-29 [oracle/Sql]怎样比较两表的差异?
2015-01-29 【Canvas与艺术】红色凯尔特结
2015-01-29 Java环境变量设置
2015-01-29 Win7安装软件,界面上中文显示乱码的解决方案
2014-01-29 【Canvas技法】勾画十二齿斜齿齿轮轮廓
2014-01-29 【Java与排列组合】某年高考选择题:1,3,5,7,9中选两个,0,2,4,6,8中选两个,组成的无重复四位数有几个?
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示