以文本方式查看主题 - 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 [此贴子已经被作者于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 -- 具体有多慢?做个例子上来看看。你试试在数据库里面添加索引。 |