MSSQL 2016中的查询速度非常慢
我在mssql 2016中有一个非常缓慢的过程,我不认为它应该如此缓慢。MSSQL 2016中的查询速度非常慢,sql,sql-server,performance,Sql,Sql Server,Performance,我在mssql 2016中有一个非常缓慢的过程,我不认为它应该如此缓慢。 ##代码## 表1中大约有500万行 服务器cpu不足10% 4G周围的内存(服务器上为8G) 服务器上没有运行其他应用程序 现在大约是每秒3到4行 我想应该是每秒至少200行以上。 我用过游标,它是一样的 请帮忙。 非常感谢 通过代码修改,这是我在这里的第一篇帖子,感谢您的患者为什么您使用循环而不是基于集合的操作?据我所知,你想要: insert into tablerelation (uid1, uid2) s
##代码## 表1中大约有500万行 服务器cpu不足10% 4G周围的内存(服务器上为8G) 服务器上没有运行其他应用程序 现在大约是每秒3到4行 我想应该是每秒至少200行以上。 我用过游标,它是一样的 请帮忙。 非常感谢
通过代码修改,这是我在这里的第一篇帖子,感谢您的患者为什么您使用循环而不是基于集合的操作?据我所知,你想要:
insert into tablerelation (uid1, uid2)
select t1.UID, t2.UID
from Table1 t1 cross apply
(select top 1 t2.*
from table2 t2
where t2.name like N'%' + t1.Name + N'%'
) t2
where IsProcess = 0;
这应该快一点,但不会是一个令人难以置信的加速。速度的提高来自于数据库操作的减少
然而,真正的问题是使用
like
连接。有了通配符,加快速度不是很容易。您应该提供示例数据和所需的结果。谢谢,这是我在这里的第一篇文章,我会记住继续我的文章。再次谢谢哇,谢谢,你太快了。我使用循环或游标只是因为我有10列要去。我现在知道,我不必使用循环,我可以为每列插入10次。谢谢你的帮助。。。。。。。。
insert into tablerelation (uid1, uid2)
select t1.UID, t2.UID
from Table1 t1 cross apply
(select top 1 t2.*
from table2 t2
where t2.name like N'%' + t1.Name + N'%'
) t2
where IsProcess = 0;