使用反CASE思想,改写SQL

下面是自己写的一个小样,只是说说原理。

真实SQL比这个要复杂些,但是处理方法相同。

1建表

SQL> create table test_case_anti
  2  as
  3  select   sysdate+1/24/60  d1, sysdate-356+1/24/60  d2, 1 d3
  4    from  dual
  5   where 1=2 ;

Table created.


2 插入一百万行数据

SQL>  begin
  2     for i in 1..1000000
  3            loop
  4     insert into test_case_anti 
  select  sysdate+i/24/60 ,sysdate-356+i/24/60,i   from dual ;
  5    6     if mod(i,1000)=0 then commit ;end if ; 
  7     
  8     end loop ;
  9     
 10   end ;
 11  /

PL/SQL procedure successfully completed.

SQL> commit ;

Commit complete.

3  加索引 

SQL> create index idx_dao_1 on TEST_CASE_ANTI(d1) ; 

Index created.

SQL> create index idx_dao_2 on TEST_CASE_ANTI(d2) ; 

Index created.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值