The SQL Server community has been very lucky to have several free SQL Server tools to make work easier.
Here are the offerings I see mentioned most often:
• Maintenance Solution - Ola Hallengren
• dbatools - Chrissy LeMaire and others
• Diagnostic Information Queries (DIQ) - Glenn Berry
• sp_WhoIsActive - Adam Machanic
• First Responder Kit (FRK) - Brent Ozar
I have a basic understanding of what each of these tools does, but I'm not an expert with any of them. In my opinion, these tools are designed for two different kinds of DBAs. I think Maintenance Solution and dbatools are primarily for operational DBAs, while sp_WhoIsActive and FRK are primarily for development DBAs. I think DIQ has pieces for both kinds of DBAs.
There's an additional option for free SQL Server tools
I have always been a development DBA, so I'm interested in tools for that role. In fact, I created a whole suite of tools primarily for that role. It's called SQLFacts. It has been a labor of love for me to build SQLFacts, but it has been very frustrating to share it. I wrote a series of seven articles about SQLFacts for SQLServerCentral. The most recent article included several bold claims for the toolkit. I stand by those claims, but I'm not sure they really matter.
After spending nearly two years trying to introduce SQLFacts to the SQL Server community I'm disappointed in the reaction, actually a puzzling lack of reaction. It appears that entrenched interests, complacency, and the status quo leave no room for innovation with free SQL Server tools.
My seventh article got about 7000 reads in a month. I think that's a relatively high number for the website. The title is "Performance Tuning with SQLFacts Tools", so the focus on SQLFacts was clear up front. If people had no interest in SQLFacts they would not have clicked through to the content. I made some bold claims of innovation in the article. After more than 7500 reads nobody has refuted those claims.
The SQLFacts toolkit has been downloaded many thousands of times. I'm sure some of those are repeat downloads for new versions, but still a lot of people must have a copy. There's no shortage of critics in the world, but nobody has even hinted that SQLFacts is unworthy of serious consideration. Unfortunately, nobody has publicly recommended it either. This combination of facts is baffling to say the least.
How does SQLFacts compare to the list of tools above?
SQLFacts does not include anything like Maintenance Solution or dbatools. Again, those tools are for operational DBAs and SQLFacts is for development DBAs.
The sp_WhoIsActive tool is mostly for development DBAs. The SQLFacts toolkit provides very similar functionality with the Sessions tool.
The FRK (sp_BlitzFirst, sp_BlitzIndex, sp_BlitzCache, sp_Blitz) is mostly for development DBAs. The SQLFacts toolkit provides very similar functionality with the Sessions, IndexHistory, QueryHistory, and MetricsNow tools. The SQLFacts toolkit leans toward providing all the relevant information, organized to make issues apparent. The FRK appears to lean toward deciding by itself what conditions represent issues and then listing those issues.
The DIQ comparison is more complicated and I spent some time on it. I do not mean to denigrate DIQ, or any of the other tools, because they have helped many SQL Server users over the years. However, I will call things as I see them.
The DIQ are basically a collection of blog post scripts. They are generally very short and very specific. About 40% of the DIQ are mostly for operational DBAs and SQLFacts does not include anything like them. About 60% of the DIQ are mostly for development DBAs. The SQLFacts toolkit provides "very similar" functionality with the SQLFacts, BACKUP, MetricsNow, SQLAgent, Bufferin, Databases, Sessions, Resources, AGLatency, Statistics, QueryHistory, IndexHistory, IndexNeeds, IndexNeedsPlus, and IndexActivity tools. I say it's "very similar" functionality, but SQLFacts goes much further. The SQLFacts toolkit neatly organizes all the functionality into tools for certain tasks. The tools provide all the necessary contextual information for those tasks. The functionality and the information are much more disjointed in the DIQ.
SQLFacts compares very favorably to a combination of all the popular tools for development DBAs.
What makes SQLFacts different from the other tools?
The SQLFacts toolkit is unprecedented in breadth. There's nothing comparable in the sheer quantity of tools and the range of functionality. The tools vary in size, but each one is designed to serve a valuable purpose.
The SQLFacts toolkit is much more than slapped together, piecemeal, blog post scripts from all over the WWW. The suite is a great resource for learning, but each tool also provides very beneficial details about a SQL Server environment. It's easier to learn from the tools, and use them in daily work, because there's consistency in T-SQL coding style and format.
The greatest strength of SQLFacts may be the many features for performance tuning. SQLFacts goes far beyond other tools in analyzing and presenting opportunities for improvement. It connects information that other tools do not, which provides deeper insights into potential problems. Please refer to my seventh article for a discussion of some of the innovative features.
SQLFacts does a better job with common functionality (available in other tools), but it also provides a lot of unique functionality. Parts of the SQLFacts, Search, GenerateKeys, GenerateSQL, SQLAgent, Locksmith, QueryIndexes, IndexNeeds, and Indexer tools provide features I have not seen elsewhere. Most of the Trimmer, Planner, Threshold, QueryTracker, IndexNeedsPlus, and INCLUDE tools provide features I have not seen elsewhere.
Why does SQLFacts not get a lot more attention?
SQLFacts offers an extremely attractive alternative to the other tools. I think the word "alternative" is the reason it does not get more attention. There are many entrenched interests that may not welcome an alternative for various reasons. There's complacency among very experienced members of the community. They have been using the other tools for years and they may not believe that a better alternative could even exist. Further, the status quo is very hard to overcome. There may be many users of SQLFacts who are uncomfortable with speaking up because they feel like they must conform to what "experts" recommend. What if "experts" are biased? What if "experts" are wrong? Frankly, I think Microsoft should be a bit concerned that innovation is no longer encouraged, or even accepted, with free SQL Server tools.
SQLFacts is intended to be a comprehensive toolkit for development DBAs. It's a very ambitious project, but it needs more advocates to achieve its potential. It would be very unfortunate for the community if there's no room for innovation with free SQL Server tools.