I agree with the sentiment that if you are doing everything right, then you may not need to Reboot/Restart your MSSQL Server.
To me this applies to the scenario where everyone is competent and you can fix anything.
I am not a DBA. I am a Software Architect and part of that involves building entire Database Schemas from scratch and, unfortunately, working with 3rd Party Databases that I have absolutely NO control over.
The people, who created and maintain one of our major 3rd Party Databases, barely made it functional.
Did I mention I am also not a Security Expert or Network Engineer either?
- At least one Major Window OS Update, Security Update, BIOS Update,
OS/MSSQL Service Pack, or MSSQL Cumulative Update are bound to come
out every month or two.
- Applying these in a timely manner means
Rebooting/Restarting your Server around every quarter.
- Even when operating inside an Intranet, why wouldn't you apply
Security Updates?
- If I was allowed to have SSL on our PHI
Intranet websites, I would do it because no network is infallible. I am paranoid I guess.
To me the question then becomes: Should I Restart SQL Server more often than every 3 months?
Scheduling Restarts for the promise of an extra inch of performance, is like dancing for rain.
Maybe it'll come, maybe it won't, but you won't know for sure what caused it to rain.
- If you notice a significant performance bump after rebooting the
server due to regular maintenance, then you should investigate why
that happens.
- If you are having issues, and are not sure what is
causing them, then as you reduce your variables by stopping services
and jobs to find something like a memory leak (in extreme cases like
this) maybe rebooting/restarting your server with some services turned off (or traces turned on) will
help you rule out those other services as the cause.
I don't like saying you NEVER need to Restart it to troubleshoot an issue or verify failover, but I do have a problem with scheduling Restarts to keep an unknown performance issue from randomly occurring.
The Only exception to this is if you manage a rogue 3rd Party Database where rebooting it every week or two seems to be the only way to keep it operating and you are not allowed to fix or even touch it.
Even then, you should look for fixes, share them with the owner, and raise hell till it's resolved.