SQL Duplizieren Abfrage Löschen, die sich über Millionen von Zeilen für die Leistung

Dies war ein Abenteuer. Angefangen habe ich mit der Schleife doppelte Abfrage befindet sich in meine Vorherige Frage, aber jeder Schleife würde gehen über alle 17 Millionen Datensätze, Sinn würde es noch Wochen dauern (nur laufende *select count * from MyTable* nimmt mein server 4:30 Minuten mit MSSQL 2005). Ich leuchtete Sie Informationen von dieser Seite und an dieser post.

Haben und kam bei der Abfrage unten. Die Frage ist, ist dies die richtige Art der Abfrage ausgeführt werden auf 17 Millionen Datensätze für jede Art von Leistung? Wenn nicht, was ist?

SQL-ABFRAGE:

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)
InformationsquelleAutor RyanKeeter | 2008-10-02
Schreibe einen Kommentar