以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查找空值和指定值的行,效率相差200倍以上  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190879)

--  作者:xluoping
--  发布时间:2024/3/10 22:07:00
--  查找空值和指定值的行,效率相差200倍以上
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倍,这是什么原因?



--  作者:有点蓝
--  发布时间:2024/3/10 22:41:00
--  
正常的,null查询会导致全表扫描,表格数据越多就越慢。这个是SqlServer的基本常识,网上搜搜就有。如果可以尽量不要使用null查询。

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