Foxtable(狐表)用户栏目专家坐堂 → 查找空值和指定值的行,效率相差200倍以上


  共有467人关注过本帖树形打印复制链接

主题:查找空值和指定值的行,效率相差200倍以上

帅哥哟,离线,有人找我吗?
xluoping
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:356 积分:3627 威望:0 精华:0 注册:2016/4/2 12:11:00
查找空值和指定值的行,效率相差200倍以上  发帖心情 Post By:2024/3/10 22:07:00 [只看该作者]

Dim drs As New List(of DataRow)
drs = DataTables("编号").SQLSelect("机构id = '" & Vars("jigou_id") & "'")    用时 99毫秒

Dim drs As New List(of DataRow)
drs = DataTables("编号").SQLSelect("机构id is null")  用时20000毫秒


虽然以上在数据库里 行数是一样的,但是查询效率 相差200倍,这是什么原因?



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107167 积分:545084 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/10 22:41:00 [只看该作者]

正常的,null查询会导致全表扫描,表格数据越多就越慢。这个是SqlServer的基本常识,网上搜搜就有。如果可以尽量不要使用null查询。

一些数据库的优化可以看看:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943&replyID=&skin=1

 回到顶部