0的效率高" /> 0的效率高 - 秒客网" />

求教一个效率问题,column is not null and column"" 的效率高还是 len(column)>0的效率高

时间:2022-02-10 19:57:07
这2个写法得出的结果我认为是一样的
但是我在sql2k的查询分析器里对某个表分析了一下,clustered index scand 的成本都是一样的8x
但是column is not null and column<>""  这个的select 成本要高于len(column)>0的成本
而且预计行数也多很多
用count(*)算了一下,结果一样,而且时间都只显示为1秒
那数据量很大的情况下那个条件比较好?

10 个解决方案

#1


column   is   not   null   and   column <> ""
这个快

#2


其实两种写法都可能引起表级扫描吧

似乎强制索引才行
SELECT * FROM T1 (INDEX = IX_ProcessID) where ...

#3


不如在设计时加缺省值,这样可以避免is not null 及<> 的操作,

#4


我认为还是is null is not null快

#5


避免使用!=或<>、IS NULL或IS NOT NULL、IN ,NOT IN等这样的操作符,因为这会使系统无法使用索引,而只能直接搜索表中的数据

#6


而对where 中的字段用函数操作也会这样

#7


column   is   not   null   and   column <> ""     这个 快一点
这个可以用到索引

len(column)> 0 使用了函数,使用不了索引

#8


其实速度差别不大吧。如果可读性,我认为下边的更好些。
isnull(字段名,'')<>''

#9


当然了,对楼主的问题,我认为用函数一定会比不用函数慢些吧。

#10


is null或者is not null
这样判断效率高点吧```

#1


column   is   not   null   and   column <> ""
这个快

#2


其实两种写法都可能引起表级扫描吧

似乎强制索引才行
SELECT * FROM T1 (INDEX = IX_ProcessID) where ...

#3


不如在设计时加缺省值,这样可以避免is not null 及<> 的操作,

#4


我认为还是is null is not null快

#5


避免使用!=或<>、IS NULL或IS NOT NULL、IN ,NOT IN等这样的操作符,因为这会使系统无法使用索引,而只能直接搜索表中的数据

#6


而对where 中的字段用函数操作也会这样

#7


column   is   not   null   and   column <> ""     这个 快一点
这个可以用到索引

len(column)> 0 使用了函数,使用不了索引

#8


其实速度差别不大吧。如果可读性,我认为下边的更好些。
isnull(字段名,'')<>''

#9


当然了,对楼主的问题,我认为用函数一定会比不用函数慢些吧。

#10


is null或者is not null
这样判断效率高点吧```