• Could you rewrite the delete statement to:

    DELETE TOP (20) FROM [dbo].[ServerParametersInstance]

    WHERE Expiration < @now

    This will prevent the query to simultaneously read and delete from the same table.

    ** Don't mistake the ‘stupidity of the crowd’ for the ‘wisdom of the group’! **