One day I have a requirement to provide list item purging from SharePoint. Deleting small list item may not be a problem, however deleting huge items from a list will impact the whole SharePoint farm performance during the operation. The issue is caused by the locking mechanism that occurs during the delete operation. Additionally the deleted list item will be stored to recycle-bin of the site, hence it will contribute to another performance impact. Note, the impact depends on the number of items in the list that you are deleting as well as SharePoint farm architecture.
This script helps to reduce the impact by performing delete in batch – and providing sleep between batches. The batch reduces the locking time of the SharePoint farm and the sleep between batches ensures that other pending tasks can be processed by the server.
Grab the script here : https://www.powershellgallery.com/packages/DeleteListItems/