如果我有两个非常大的表(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
你应该在系统上运行的数据查询。我预计在大多数情况下,表现会非常相似,但如果你真的在乎,那就试试两种。 –
查询语法并不重要 - 从中创建的执行计划是重要的。如果执行计划相同,则性能将相同 –