Our company recently experienced a problem with our SQL Server database where we were having high load and some database monitoring scripts killed a number of connections.
When this happened a few of the transaction in process failed to finish rolling back.
They repeatedly said the rollback was 0% complete when executing kill on the pid.
After searching online we discovered people suggesting to restart SQL Server. This was not desirable as this was a production db. We were also concerned that restartinng could cause corruption to our database forcing us to restore from backups.
We eventually restarted the server and everything started up fine without the transactions that where rolling back.
My question is:
Is it possible to prevent this from happening in the first place? If not is there any way to know it is safe to restart?