In this blog post, I continue my series of SQL Server Health Checklists that I am developing for a new book I am writing. The focus of this checklist is database maintenance.
Database maintenance includes a defined set of proactive tasks that a DBA needs to perform on a periodic basis to help ensure that their databases perform optimally and maintain high availability. In many cases, the individual maintenance steps taken might not, by themselves, seem all that important, but the accumulative effect of performing database maintenance tasks can be huge.
In my most recent poll, I asked DBAs if they have turned on instant file initialization on their SQL Servers. I was a little surprised by the results. Just over half of the DBAs who responded to the poll said that they don’t know what instant file initialization is, and another 13% said that they don’t use it. Only about a third said they have it turned on.
Instant file initialization seems to be one of SQL Server’s most hidden performance gems, and should be turned on for virtually every SQL Server. To learn more about instant file initialization, see my blog post: “Instant File Initialization Speeds SQL Server”.
I give a lot of presentations based on best practices, and in all of them I stress the importance of regularly rebuilding or reorganizing indexes. Both the REBUILD and the REORGANIZE options have their pros and cons, so I thought it would be interesting to do a poll to see which method(s) was preferred by DBAs. The results are to the left.
After seeing the results of the poll (which was not scientifically designed), I was rather impressed with how many DBAs use a combination of both the REBUILD and the REORGNIZE methods to defragment their indexes. To me, this indicates a high level of knowledge of how to best defragment indexes, as using a combination of both options allows the DBA to choose which method is best for a particular index, rather than taking the brute force method of using either REBUILD or REORANIZE to defragment all of their indexes. I was also impressed that only a very small percentage of the poll’s respondents didn’t defragment their indexes, or know what index defragmentation was.
Sometimes, its just the smallest of details that can make all the difference. For example, on my test system (see the end of this posting for a description), I created a new 50GB database. The database creation process took about 5 minutes and 50 seconds to complete.
I have worked with a lot of organizations who have just a small handful of SQL Server instances. In most of these cases, these SQL Servers contain mission-critical data, but on the other hand, these organizations are not big enough to justify a full-time DBA, so either they subcontract the DBA work to an outside organization, or they assign someone from within the company to be the a “part-time” DBA.
When I wrote my most recent free eBook, Brad’s Sure Guide to SQL Server Maintenance Plans, some of the DBAs I know asked me why I wrote it. After all, “real” DBAs don’t use the Maintenance Plan Wizard/Designer built into SQL Server 2005/2008 Management Studio (SSMS) to maintain their databases, they write Transact-SQL or PowerShell scripts instead. The reason I wrote the book is because there are many DBAs, many more than you think, who use this tool.
In a recent survey on my website (www.bradmcgehee.com) I conducted the following poll:
I have recently updated and revised my DBA Best Practices Checklist, which is hosted on www.Simple-Talk.com. The goal of the list is not to cover every aspect of SQL Server administration, but to hit the highlights. In addition, not every item in the checklist will apply to every SQL Server instance, under every circumstance. So like any list of SQL Server best practices, don’t forget that they may or may not apply to your environment.
If you would like to add your own items to the checklist, or to provide other feedback on the checklist, please do so here, and I will try to include your feedback the next time I update the list.