admin

更新缓慢(主键)

sql

update auditdata set TATCallType='12',TATCallUnit='1' from auditdata auditdata 
        inner join Auditdata_sms_12 a_sns
        on auditdata.ID = a_sns.id

当我在上面查询时,需要花费超过10分钟的时间来执行。

这有什么问题

Auditdata.ID 是主键

如果我运行Update命令,那还会更新索引吗???这是更新获取的原因很慢吗


阅读 210

收藏
2021-07-01

共1个答案

admin

查看您的评论,主表包含的行少于临时表。

尝试使用EXISTS子句(或在某种意义上,将比较减少到更少的行数(即1500000)

update auditdata set TATCallType='12',TATCallUnit='1' 
from auditdata auditdata 
WHERE EXISTS 
(SELECT id from Auditdata_sms_12 a_sns WHERE a_sns.id = auditdata.ID)

这个想法是限制比较。

编辑:AuditdataSMS12应该具有ID上的索引,以便能够快速获取行。那就是您实际上正在查找给定ID的表。

2021-07-01