SQL查询花费的时间太长,无法在服务器(而非本地)中执行

时间:2019-11-15 08:31:57

标签: sql sql-server

我有一个SQL查询通过视图的计数结果更新列,这是我的查询

UPDATE [dbo].[Table]
   SET [ColumnName] = (select Count(View.Column) from View
                       where table.Column = View.ColumnN and View.Column1>0)                               
WHERE [dbo].[Table].Column in (select Column from View)

当我在本地SqlServer中执行此查询时,此查询将花费1秒,但是当我在部署了应用程序的服务器中执行该查询时,大约需要1.36分钟,我在做错什么了吗:) 提前致谢

1 个答案:

答案 0 :(得分:1)

很常见。有时记录从10到100显然会导致效率降低。尝试先进行分组,然后使用连接合并更新记录。您的专栏关系对我来说还不清楚,仅供参考。

UPDATE [dbo].[Table]
   SET [ColumnName] = d.Result
FROM (SELECT View.ColumnN, COUNT(View.Column) AS Result
      FROM View
      WHERE View.Column1 > 0
      GROUP BY View.ColumnN 
     ) d INNER JOIN
     [dbo].[Table] t
     ON d.ColumnN = t.Column