弟有一问题 : 对N个有几万条数据的表的连接查询如何提高查询速度?

win98ddk 2003-10-18 12:13:48
弟近日负责一考勤项目,里面的排班表、刷卡数据表以及别的表都有好几万条数据,最多的一个有6万条,采用Access数据库,Dao连接,查询的时候发现速度奇慢,做一个300人的考勤月报表需要差不多两天,特向各位学长求救。
典型代码如下所示:

CX_1 = "UPDATE PBB P,SKDJ S,KQGZ K,RS R SET P.CQ" & Fld_1 & "='准时上班' WHERE P.GH=S.GH AND S.SJ>= " & _
"DATEADD('n',-K.SXSJ" & Fld_1 & "_1,P.SJ" & Fld_1 & "_1) AND S.SJ<= DATEADD('n',K.CDSJ" & Fld_1 & ",P.SJ" & _
Fld_1 & "_1) AND P.CHECK=FALSE AND P.SB" & Fld_1 & "=TRUE " & _
"AND P.SJ" & Fld_1 & "_1<#" & Format(Now, "YYYY-MM-DD HH:MM:SS") & "# AND P.RQ>= #" & _
RQV_1 & "# AND P.RQ<= #" & RQV_2 & "# AND R.GH=P.GH AND R.KQGZBH=K.KQGZBH AND " & TJ_1
DB_1.Execute CX_1, 128

此语句执行将近5秒钟,能够优化到1秒钟是最理想的,弟已经黔驴技穷了
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gelim 2003-10-19
  • 打赏
  • 举报
回复
建议使用索引,这样能提高查询速度。
wanghujin 2003-10-19
  • 打赏
  • 举报
回复
SQL2000或ACCESS2000在这个工程里不是
影响速度的关键.
ACCESS2000是个桌面型的数据库,多人
访问和SQL2000有区别.
要速度快,用索引可以提高.
yoki 2003-10-18
  • 打赏
  • 举报
回复
1:对你的条件中用到的字段作索引
2:更改条件的排列顺序
yoki 2003-10-18
  • 打赏
  • 举报
回复
换成Sqlserver吧
win98ddk 2003-10-18
  • 打赏
  • 举报
回复
那我又不明白了,为什么SQL SERVER处理数据要比较快呢?
liaorui 2003-10-18
  • 打赏
  • 举报
回复
建议用SQL SERVER数据库。

如果用ACCESS,用索引吧
bigpig 2003-10-18
  • 打赏
  • 举报
回复
关注

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧