3
我有下面的查询更新HierarchicalTable
上的某些ID。SQL Server内部连接和子查询
我第一次查询,是稳定的,但我有它的性能问题:
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这里发布过,以便我可以看到任何意见。
谢谢你。无论如何,我可否知道,如果这两个查询会有相同的结果? “层级(父名,ID)”和“层级(名称,ID)”是否是'id'列的重复索引? – Shermay
@Shermay。 。 。这两个查询将返回相同的结果。我认为他们也会有相同的执行计划。 –