怎么在大表中找到null的几条数据?

我们假设temp_zhangxb_2015110501a 是千万级的大表,而cust_id中有几个null值,且cust_id 中不会存在'1'的值,那么我们这么做:

create index ind_custid2 on temp_zhangxb_2015110501a(nvl(cust_id,'1'));

select /*+ index(t ind_custid2)*/* from temp_zhangxb_2015110501a t where nvl(t.cust_id,'1') = '1';

你就会在执行计划中看到调用索引ind_custid2的情况

倘若不用ind_custid2索引,就会走全表扫描,为了几条数据,实在不值当啊,有不知情的人也许会问,那在cust_id建个索引不就完了,...因为我们找的是null值,常规索引是不行的,大家要注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值