0
首先,我们从ProductFileLocalName中获取最大ID,然后是 - 1000(因为我们不想删除最近的添加,因为它们可能不会在ProductFileInfo插入尚)优化删除大量行(超过几百万) - SQL Server 2005
然后我们通过最大id来此存储过程:
DELETE TOP (10000)
FROM ProductFileLocalName WITH (ROWLOCK)
FROM ProductFileLocalName
LEFT OUTER JOIN ProductFileInfo AS pfi WITH (NOLOCK) ON ProductFileLocalName.ProductFileLocalNameId = pfi.ProductFileLocalNameId
WHERE (ProductFileLocalName.ProductFileLocalNameId < @maxid AND pfi.ProductFileInfoId IS NULL);
这是执行此操作的最有效方法是什么?
你能准确告诉我们你想要做什么吗?这是关于大规模删除的第三个问题(它是数十亿,现在是数百万,现在是TOP 10000,...) – gbn 2010-07-31 12:13:42
表格的百分比明智,你删除了多少条记录? – NinjaCat 2010-07-31 12:54:16
@gbn这是一个差异表,另一个表我使用了你的建议,它运行良好。 – RPS 2010-07-31 15:14:36