Pode ser lento porque uma grande exclusão gera um grande log de transações. Tente excluí-lo em pedaços, como:
WHILE 1 = 1
BEGIN
DELETE TOP (256) FROM FTPLog WHERE FTPLogId <= @MaxFTPLogId
IF @@ROWCOUNT = 0
BREAK
END
Isso gera transações menores. E atenua os problemas de travamento criando espaço para outros processos.
Você também pode pesquisar tabelas particionadas . Eles potencialmente permitem que você limpe as entradas antigas descartando uma partição inteira.