Su índice realmente no admite la consulta, ya que la consulta no hace referencia a la columna clave principal. Entonces, tiene que escanear toda la tabla con o sin este índice. Podría considerar un índice solo en DataPointDate para respaldar esta operación de eliminación si es algo que ejecuta con frecuencia.
Si DataPointID es una columna de IDENTIDAD y DataPointDate se ingresa secuencialmente, también podría considerar esta variación:
DECLARE @maxID INT;
SELECT @maxID = MAX(DataPointID)
FROM dbo.tblTSS_DataCollection
WHERE [DatapointDate] < DATEADD(D, -7, GETDATE());
DELETE dbo.tblTSS_DataCollection
WHERE DataPointID <= @maxID;
Otra cosa que podría considerar hacer (si es la eliminación y no el escaneo lo que contribuye a la lentitud) es (a) asegurarse de que su registro tenga suficiente espacio para acomodar la eliminación, y no lo esté matando con un montón de crecimientos automáticos, y ( b) realizar el trabajo por lotes:
BEGIN TRANSACTION;
SELECT 1;
WHILE @@ROWCOUNT > 0
BEGIN
COMMIT TRANSACTION;
DELETE TOP (1000) dbo.tblTSS_DataCollection WHERE ...
END
COMMIT TRANSACTION;