这是一次冒险。我从上一个问题中的循环重复查询开始,但每个循环都会遍历所有1700 万条记录,这意味着它需要数周时间(仅*select count * from MyTable*
使用 MSSQL 2005 运行我的服务器需要 4:30 分钟)。我从这个网站和这篇文章中得到了一些信息。
并已到达下面的查询。问题是,对于任何类型的性能,这是对 1700 万条记录运行的正确查询类型吗?如果不是,那是什么?
SQL查询:
DELETE tl_acxiomimport.dbo.tblacxiomlistings
WHERE RecordID in
(SELECT RecordID
FROM tl_acxiomimport.dbo.tblacxiomlistings
EXCEPT
SELECT RecordID
FROM (
SELECT RecordID, Rank() over (Partition BY BusinessName, latitude, longitude, Phone ORDER BY webaddress DESC, caption1 DESC, caption2 DESC ) AS Rank
FROM tl_acxiomimport.dbo.tblacxiomlistings
) al WHERE Rank = 1)