SQL子查询性能需要提高

卡兰

我在Update语句中有此子查询。它显示了执行计划内的热点。请提出建议,是否可以进行一些代码改进以提高性能。

--Schema of temp table.
CREATE TABLE #tmpInvestorJob (
    LogID INT,
    [Status] INT,
    JobType VARCHAR(20)
)

CREATE CLUSTERED INDEX IX_tmpInv_Status ON #tmpInvestorJob ([Status]);

----#TempTimeline has less than 10 records but has lot of columns.
----#tmpInvestorJob has lots of data inside and is main reason for the slowness.

UPDATE g
SET Completed = ISNULL(a.Completed, 0)
FROM #TempTimeline g
JOIN (
    SELECT LogID,
           COUNT(1) 'Completed'
    FROM #tmpInvestorJob
    WHERE [Status] = 3
    GROUP BY LogID
) a ON a.LogID = g.LogID

请提出建议,如果我们可以改进上面的Update语句。

克劳森

您可以在#tmpInvestorJob表中的LogID上添加索引。

这将提高性能,因为它仅计算表之间匹配的行。它应该快得多,因为#TempTimeline中只有几行。

UPDATE g 
SET 
  Completed =  COALESCE(a.Completed, 0)
FROM #TempTimeline g
-- using outer apply in case no matches are found to set completed to 0
OUTER APPLY 
(
  SELECT COUNT(*) Completed
  FROM #tmpInvestorJob
  WHERE
    [Status] = 3              
    and LogID = g.LogID
) a

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

提高子查询的性能

来自分类Dev

提高 SQL 查询性能

来自分类Dev

我需要提高查询性能

来自分类Dev

SQL查询需要提高的性能(1个表)

来自分类Dev

如何提高sql查询的性能

来自分类Dev

消除子查询以提高查询性能

来自分类Dev

MySQL - 需要帮助提高查询性能

来自分类Dev

SQL Server:如何提高WHERE子句中具有多个CTE和子查询的查询的性能

来自分类Dev

通过 SQL Server 提高 SQL 查询的性能

来自分类Dev

需要帮助来提高SQL DELETE性能

来自分类Dev

如何提高SQL Server Select查询的性能?

来自分类Dev

如何提高SQL Server Select查询的性能?

来自分类Dev

如何提高此SQL Server查询的性能?

来自分类Dev

如何提高SQL Azure查询性能

来自分类Dev

通过使用排序提高sql查询性能?

来自分类Dev

如何提高这个 sql 查询的性能?

来自分类Dev

提高 PHP 文件中的 SQL 查询性能

来自分类Dev

提高 SQL 查询选择性能

来自分类Dev

提高sql join count查询的性能

来自分类Dev

提高(查询)性能

来自分类Dev

提高LINQ查询性能?

来自分类Dev

提高SimpleMembership查询性能?

来自分类Dev

无法提高查询性能

来自分类Dev

提高查询性能

来自分类Dev

提高查询性能

来自分类Dev

提高查询性能

来自分类Dev

提高24小时返回相同结果的SQL查询的性能

来自分类Dev

使用嵌套循环提高SQL查询的性能-PostgreSQL

来自分类Dev

有可能提高此SQL查询的性能吗?