Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSSQL 2016中的查询速度非常慢_Sql_Sql Server_Performance - Fatal编程技术网

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

我在mssql 2016中有一个非常缓慢的过程,我不认为它应该如此缓慢。

##代码## 表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;