Först kan du försöka lägga till index i fälten ProgramName och CustID om du inte redan har dem.
De-Duping
Du kan gruppera dina poster för att identifiera duper, och när du gör det, ta det minsta ID-värdet för varje grupp. Ta sedan bara bort alla poster vars ID inte är ett av MinID:en.
In-Claus Method
delete from
ProgramsList
where
id not in
(select min(id) as MinID
from ProgramsList
group by ProgramName, CustID)
Gå med-metod
Du kan behöva köra detta mer än en gång om det finns många medlemmar per grupp.
DELETE P
FROM ProgramsList as P
INNER JOIN
(select count(*) as Count, max(id) as MaxID
from ProgramsList
group by ProgramName, CustID) as A on A.MaxID = P.id
WHERE A.Count >= 2
Vissa människor har prestandaproblem med In-Clausen, andra inte. Det beror mycket på dina index och så. Om den ena är för långsam, prova den andra.
Relaterat:https://stackoverflow.com/a/4192849/127880