Donly 发表于 2012-7-4 13:53:57

sybase的索引查询时使用了is null,索引仍有效?

在网上看了很多资料,都说在索引列使用is null或则is not null,索引会失效,但是今天自己试了一下,发现:

Select a.Circuit_Id,a.State_Name ,a.Status from tCircuit a
where a.Spec_Id = 3 and a.Service_Number is null---这句会使用Service_Number 上的索引

Select a.Circuit_Id,a.State_Name ,a.Status from tCircuit a
where a.Spec_Id = 3 and a.Service_Number is not null ----这句不会使用Service_Number上的索引,会使用表扫描

Select a.Circuit_Id,a.State_Name ,a.Status from tCircuit a
where a.Spec_Id = 3 and a.Service_Number is not null and a.Service_Number like 'LDC%' --这句会使用Service_Number 上的索引

以下例子中,C1列有索引,c2列无索引:
select t1.c1 from t1wheret1.c1 is   null使用了c1的索引
select t1.c1,c2 from t1wheret1.c1 isnull 使用了c1的索引
select t1.c1,c2 from t1wheret1.c1 is notnull,使用表扫描
select t1.c1 from t1wheret1.c1 is notnull 使用索引

这个要怎么理解呢?我完全糊涂了:-( ,还请各位高人指教

msnshow 发表于 2012-8-7 21:37:14

没用过sybase
页: [1]
查看完整版本: sybase的索引查询时使用了is null,索引仍有效?