看一下这句话,给点建议。

xaojancsdn 2003-04-11 06:39:55
1.update table1 set field='' where id in(select distinct(id) from table2)


2.SELECT * fROM Db2 WHERE (BDJH IN (SELECT BDJH FROM Db2 GROUP BY BDJH HAVING (COUNT(BDJH) > 1)))')(删除bdjh字段有重复的记录)


以上两名数据量都很大,在程序中实现会提示"超时",就算直接在数据库中执也很慢。
怎样改进?
...全文
23 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidBone 2003-04-15
  • 打赏
  • 举报
回复
ding
windindance 2003-04-12
  • 打赏
  • 举报
回复
首先定义索引。
1:
试试
update table1 set field='' where exists(select top 1 * from table2 where table1.id=table2.id)
2:
试试
declare @temp table (bdjh int)
select bdjh from db2 group by bdjh having count(*) >1
select * from db2 where exists(select * from @temp a where db2.bdjh = a.bdjh)
当数据量很大时,exists可能会比in要快。

SQL SERVER数据库超时设置:SQL SERVER-属性-连接-查询超时属性
Delphi超时设置:ADOConnection.CommandTimeout:=600; (s)
xaojancsdn 2003-04-12
  • 打赏
  • 举报
回复
如何增加超时的等待时间?
bee2518 2003-04-11
  • 打赏
  • 举报
回复
我所知道加快SQL语句方法不外乎两种,加索引与执行过程,你看看相关的书
LEEBIRD 2003-04-11
  • 打赏
  • 举报
回复
放到存储过程中去执行
tonylk 2003-04-11
  • 打赏
  • 举报
回复
加索引,增加超时的等待时间
xaojancsdn 2003-04-11
  • 打赏
  • 举报
回复
是bdjh字段值重复

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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