求高手,帮忙优化一个语句

langlan 2009-01-23 05:42:09
想在B表中找出符合条件的UniqueNumber,并在A表中删除该UniqueNumber对应的记录,
strSQLDelete = "Delete from TblA where UniqueNumber IN ( ";
strSQLDelete += "SELECT UniqueNumber " ;
strSQLDelete += " FROM TblA H ";
strSQLDelete += " LEFT OUTER JOIN TblB M ";
strSQLDelete += " ON (H.onDate = M.onDate) and (H.roundNo = M.roundNo) and (H.sampleNo = ";
strSQLDelete += " M.sampleNo) and (H.orderType = M.orderType) and (";
strSQLDelete += GetSelectedMethodCode(); 此处是N个条件,如:1 OR 2 OR 3 ... OR 60
strSQLDelete += " ) WHERE M.onDate IS NULL) ";
在双核机器上删除需要半分钟,实在太慢了,本人刚接触SQL,希望高手能帮忙优化一下,最好控制在5秒以内。
...全文
43 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
langlan 2009-01-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Haiwer 的回复:]
可以不用子查询,直接删除,效果不一定

strSQLDelete = "Delete H ";
strSQLDelete += " FROM TblA H ";
strSQLDelete += " LEFT OUTER JOIN TblB M ";
strSQLDelete += " ON (H.onDate = M.onDate) and (H.roundNo = M.roundNo) and (H.sampleNo = ";
strSQLDelete += " M.sampleNo) and (H.orderType = M.orderType) and (";
strSQLDelete += GetSelectedMethodCode(); 此处是N个条件,如:1 OR 2 OR 3 ... O…
[/Quote]
第一个H过不去啊
langlan 2009-01-23
  • 打赏
  • 举报
回复
我也觉得是or太多了,但是没办法,必须的
langlan 2009-01-23
  • 打赏
  • 举报
回复
不关联的话可以在删除TblA中的记录么?
昵称被占用了 2009-01-23
  • 打赏
  • 举报
回复
最大的性能问题可能在于太多的or
昵称被占用了 2009-01-23
  • 打赏
  • 举报
回复
可以不用子查询,直接删除,效果不一定

strSQLDelete = "Delete H ";
strSQLDelete += " FROM TblA H ";
strSQLDelete += " LEFT OUTER JOIN TblB M ";
strSQLDelete += " ON (H.onDate = M.onDate) and (H.roundNo = M.roundNo) and (H.sampleNo = ";
strSQLDelete += " M.sampleNo) and (H.orderType = M.orderType) and (";
strSQLDelete += GetSelectedMethodCode(); 此处是N个条件,如:1 OR 2 OR 3 ... OR 60
strSQLDelete += " ) WHERE M.onDate IS NULL and H.UniqueNumber is not null ";
dawugui 2009-01-23
  • 打赏
  • 举报
回复
你在找B表中找出符合条件的UniqueNumber时如果需要和TBLA表关联的话,你的SQL没有问题,因为你的需求就是这样的,没什么好优化的了.只能建议你在相关字段上建立索引了.
dawugui 2009-01-23
  • 打赏
  • 举报
回复
想在B表中找出符合条件的UniqueNumber,并在A表中删除该UniqueNumber对应的记录,

你在找B表中找出符合条件的UniqueNumber时为什么要和TblA 关联系?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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