DELETE-Befehl ist zu langsam in eine Tabelle mit einem Gruppierten Index

Ich habe eine ziemlich große Tabelle mit dem Namen FTPLog mit rund 3 Millionen aufnehmen wollte ich hinzufügen, ein löschen-Mechanismus, um löschen Sie alte Protokolle, aber Befehl löschen dauert lange. Ich fand, dass gruppierten index löschen dauert lange.

DECLARE @MaxFTPLogId as bigint
SELECT @MaxFTPLogId = Max(FTPLogId) FROM FTPLog WHERE LogTime <= DATEADD(day, -10 , GETDATE())
PRINT @MaxFTPLogId
DELETE FROM FTPLog WHERE FTPLogId <= @MaxFTPLogId

Möchte ich wissen, wie kann ich die Leistung verbessern zu löschen?

Ist die FTPLogID Spalte indiziert?
Ja, es ist primary key
Wie viele Zeilen gelöscht werden, und wie lange dauert es?
Gibt es noch andere Indizes auf der Tabelle außer dem Primärschlüssel?
Es gibt keine andere Indizes habe ich herausgefunden, dass zuerst löschen, ist sehr zeitaufwändig.Es ist über 2 Millionen Datensätze

InformationsquelleAutor Ahmadreza | 2009-05-27

Schreibe einen Kommentar