【发布时间】:2013-07-28 03:32:00
【问题描述】:
我在下面的查询中更新了HierarchicalTable 上的某些 ID。
我的第一个查询是稳定的,但我的性能有问题:
DECLARE @targetName varchar(100)
UPDATE a
SET a.PrimaryId = b.PrimaryId
, a.SecondaryId = b.SecondaryId
FROM
(
SELECT PrimaryId
, SecondaryId
FROM Hierarchical
WHERE ParentName = @targetName
) as a
JOIN
(
SELECT PrimaryId
, SecondaryId
FROM Hierarchical
WHERE Name = @targetName
) b
ON a.ParentId = b.Id
下一个查询是我的第二个选项:
DECLARE @targetName varchar(100)
UPDATE a
SET a.PrimaryId = b.PrimaryId
, a.SecondaryId = b.SecondaryId
FROM Hierarchical a
JOIN Hierarchical b
ON a.ParentId = b.Id
WHERE a.ParentName = @targetName
AND b.Name = @targetName
我的问题是:
第二个查询是否像第一个查询一样执行?
第二个查询会优于第一个查询吗?
*注意:我有大量数据,我们在执行时遇到了硬件问题 这些查询。
我已经在 SO 发帖,这样我可以有任何我能看到的意见。
【问题讨论】:
标签: sql sql-server subquery query-optimization inner-join