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。 。 。這兩個查詢將返回相同的結果。我認爲他們也會有相同的執行計劃。 –