只对部分行建立索引

只对部分行建立索引 
创建大表: 
create table t_big (id int,flag varchar2(5));

begin 
for j in 0..100 loop 
for i in 0..10000 loop 
execute immediate 'insert into t_big(id) values(:1) ' using i; 
end loop; 
commit; 
end loop; 
end; 
/

insert into t_big select r,case when mod(r,50)=0 then 'N' else 'Y' end from (select level r from dual connect by level<500); 
commit;

创建索引 
create index idx_flag on t_big(case flag when 'N' then 'N' end);

SQL> analyze index idx_flag validate structure;

Index analyzed. 
SQL&gt; select name,btree_space,lf_rows,height from index_stats;

NAME BTREE_SPACE LF_ROWS HEIGHT 
------------------------------ ----------- ---------- ---------- 
IDX_FLAG 7996 9 1

使用: 
select * from t_big where decode(flag,'N','N')='N';

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值