我有一个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分钟,我在做错什么了吗:) 提前致谢
答案 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