以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  查询速度  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92922)

--  作者:联友
--  发布时间:2016/11/16 14:42:00
--  查询速度

  下面代码查询时速度非常慢

e.Form.controls("Table1").Table.Fill("Se  lect  学期,班级,b.学生编号,b.学生姓名,性别,父亲姓名,母亲姓名,暂住社区,接送地点 Fr om {学生基本信息} a Inner JOIN {缴费信息} b ON a.学生编号 = b.学生编号 WHERE 学期 = \'2016年秋季\' And 缴费项目 = \'餐费\' And 缴费状态 = \'已缴\'And b.学生编号 Not In (Se lect  学生编号 Fr om {缴费信息} WHERE 学期 = \'2016年秋季\' And 缴费项目 = \'车费\' And 缴费状态 = \'已缴\') ORDER BY 班级,b.学生编号","数据库", True)

能不能先查询,再删除符合条件的

e.Form.controls("Table1").Table.Fill("Se  lect  学期,班级,b.学生编号,b.学生姓名,性别,父亲姓名,母亲姓名,暂住社区,接送地点 Fr om {学生基本信息} a Inner JOIN {缴费信息} b ON a.学生编号 = b.学生编号 WHERE 学期 = \'2016年秋季\' And 缴费项目 = \'餐费\' And 缴费状态 = \'已缴\'And b.学生编号  ORDER BY 班级,b.学生编号","数据库", True)

 

 

Dim cmd As New SQLCommand 
Dim dt As DataTable
cmd.C
cmd.CommandText = "Sel  ect  学期,学生编号 Fr om {缴费信息} WHERE 学期 = \'2016年秋季\' And 缴费项目 =\'车费\' And 缴费项目 = \'已缴\'"
dt = cmd.ExecuteReader()
删除符合条件的,请指教,谢谢

[此贴子已经被作者于2016/11/16 14:43:04编辑过]

--  作者:jspta
--  发布时间:2016/11/16 14:48:00
--  
用exists代替 in查询 会快一些。
在数据库中写存储过程删除就可以了。 

--  作者:有点蓝
--  发布时间:2016/11/16 14:59:00
--  
缴费项目 = \'餐费\',都已经限定了条件后,还会查询出来缴费项目 = \'车费\'的内容?not in 还有必要吗
--  作者:联友
--  发布时间:2016/11/16 19:00:00
--  
餐费、车费在同一表上
--  作者:有点蓝
--  发布时间:2016/11/16 20:11:00
--  
缴费项目是多选的吗,一行记录会同时包含餐费和车费?
--  作者:有点青
--  发布时间:2016/11/17 8:54:00
--  
 具体有多慢?做个例子上来看看。你试试在数据库里面添加索引。