如果我有兩個非常大的表(TableA和TableB),它們都帶有Id列,並且我想從TableA中刪除其Ids中存在的所有行表B。哪一個會是最快的?爲什麼?SQL DELETE性能,T-SQL或ISO兼容查詢
--ISO-compatible
DELETE FROM TabelA
WHERE Id IN (SELECT Id FROM TableB)
或
-- T-SQL
DELETE A FROM TabelA AS A
INNER JOIN TableB AS B
ON A.Id = B.Id
你應該在系統上運行的數據查詢。我預計在大多數情況下,表現會非常相似,但如果你真的在乎,那就試試兩種。 –
查詢語法並不重要 - 從中創建的執行計劃是重要的。如果執行計劃相同,則性能將相同 –