Community Tools Month: Choose Your Character

This month on the blog is Community Tools Month, and I’m going to be talking about some of the most useful and influential tools out there.

You can’t learn them all – *I* can’t learn them all – because there just aren’t enough hours in the day to do your work, keep your skills sharp, take care of yourself, and take care of the ones you love.

So this month, think about a couple of things:

  • Can I use this tool to get my existing tasks done faster?
  • Do I want to keep doing these tasks in my next job?
  • What tasks do I wanna do in my next job?
  • Can I learn this tool to help me get my next job?

With that in mind, here’s something I use all the time with clients when I’m asking how many staff they have to support a particular application:

There are certainly more data-related jobs – BI developer, architect, data scientist, data engineer, etc – but let’s start here.

I know there are gonna be readers who say, “I do all of those tasks.” Sure you do – but you don’t do them well, and if you think you do, you’re deceiving yourself about what “well” means for any of those columns. You’ll be in for a world of surprise when you go to interview for a senior position in any of those columns, because senior = specialist.

With that in mind, for each of those columns, today I’m going to list a tool that I think is important for your next job.

If you want your next job to be Production DBA,
you should be learning dbatools.

In your current position, you may not manage enough servers to justify it. You might be content doing your work one server at a time, with the SSMS GUI and T-SQL. However, the Production DBA role at small companies will continue to evolve over the next decade, and your skills need to be ready for your next job. You want bigger responsibilities, and that means accomplishing more tasks, more quickly.

Get these two books and read them in order:

You’ll learn how the open source dbatools module helps you manage more servers, in less time, while making less errors.

Like any new tool, it’s going to be slower going for you at first – probably even for months. But when it’s time to get your next job, the one managing more servers in more environments, you’re going to be able to use the exact same techniques that you’ve already been practicing at your smaller job.

If you want your next job to be a Development DBA,
you should be learning sp_HumanEvents.

I’m not telling you to learn Extended Events – you can, sure, but you don’t need to. Erik Darling’s sp_HumanEvents automates the data collection AND, here’s the important part, the analysis, for the most common long-term problems that performance tuners need to solve. I don’t use Extended Events myself directly, ever, but I use sp_HumanEvents all the time.

To understand how powerful and useful it is, start with Erik’s 10-minute video on using it to troubleshoot blocking, compiles, and recompiles.

Then, go get it and read the documentation.

If you want your next job to be developer,
you should be learning MiniProfiler.

When your team builds software-as-a-service (SaaS) applications, sooner or later, you’re going to run into a problem with server performance analysis. SQL Server has historically struggled with this, and it’s getting even worse in SQL Server 2022.

Because of these problems, you’re going to be a much more effective developer if you can implement the free open source MiniProfiler to track which parts of your application are having performance problems, and which queries are causing those problems.

I’m not saying you have to be the one who analyzes the data, reads the queries, and tunes them. However, as a developer, you are the one who’s going to have to implement the data-collecting solution. This need is even more important in the cloud where performance costs pile up every month, and the urgency to fix ’em becomes even higher.

All 3 of these have something in common.

They’re on GitHub.

GitHub itself isn’t a community tool, but in 2022, GitHub is the tool where community open source happens. I’m not saying you have to learn GitHub or use it for your own code – it can be a real pain in the keister. But if you learn the basics of how to clone a project locally and keep it up to date, you’ll likely be better off no matter what your future job entails.

Previous Post
Office Hours, Short Text Answers Edition
Next Post
[Video] Office Hours: Hotel Balcony Edition, Part 1

10 Comments. Leave new

  • What?! No comments yet? I’m genuinely surprised not to see plenty of feedback in support of these tools, or suggesting others as equally worthy, or championing some beloved tool as superior . . . or simply thanking you for sharing this. So, ok, here I am a senior developer thanking you for the post. Not because I’ve yet to discover Eric Darling (he’s great) etc. but because this is the kind of product review that matters most. We all use our own code and/or a tool or five and maybe we’re stuck in our ways and should try something new. Or maybe it’s good to hear from a guy at the top of his game about what he’s using or recommending if you happen to have x requirements.

    So thanks!

    Reply
  • I love DBATools, I got the month of Lunches book and an single day patched all SQL dev boxes and all express/runtime workstations. Great tool for sure, unbelievably easy to use.

    Reply
  • For developers and profiling code, OpenTelemetry with either Jaeger or AWS X-ray is also a great option.

    But telemetry data has saved my bacon tracking down what sections of code were slow to either prove it’s an external service or find where more optimization is needed.

    Reply
  • At our software development consulting company (https://www.emergentsoftware.net), we use two tools for database development named sp_CRUDGen & sp_Develop. They are open-source projects that I created and can be found on GitHub.

    * sp_CRUDGen generates stored procedures for you based on your tables and metadata like foreign keys and data types. 11 stored procedures like Create, Read, Update, Delete, Upsert, and dynamic SQL optional parameters Search stored procedures.

    * sp_Develop can be used by database developers, software developers for performing database code (smell) assessments to adhere to best practices.

    Reply
  • I’ve made a note to myself to try using DBATools the next time I want to perform a migration. I suspect doing so will make the next migration take longer, but it will also be safer.

    I’m particularly enthusiastic about https://dbatools.io/logshipping/ as a replacement for “manual log shipping.”

    Reply
  • Ajay Kumar Dwivedi
    September 28, 2022 8:01 am

    Hi Brent, I wrote an open Source SQL Server Baselining Tool – SQLMonitor.

    Github repo -> https://ajaydwivedi.com/github/sqlmonitor
    Document -> Deployment instruction present on Github
    Video Tutorials -> https://ajaydwivedi.com/youtube/sqlmonitor

    Setup demo on standalone instances is available on above youtube video playlist. Working on setup videos for other SQL deployments like SqlCluster (Active-Active, Active-Passive, N+ SqlClusters on N- nodes), Ag, multiple instances on same host etc.

    But the tool uses PowerShell script for deployment that has all the added native help with examples & each parameter description.

    Reply
    • Ajay – I appreciate your enthusiasm. You’ve left me several comments on different blog posts, and you’ve also tried contacting me on social media.

      Please stop contacting me further. Thanks for your understanding.

      Reply
      • Just to be really clear – I’ve already started promoting your work in social media, and I have additional tweets/etc scheduled to promote your work. Further contacts will not be productive.

        Reply
  • Mikael, Sweden
    May 7, 2023 4:13 pm

    “You can’t learn them all”
    I can’t even remember them all. So to not have to look up all parameters that can be used by the different sp_Blitz stored procedures all the time I created a windows desktop application that will run them for me.
    Just click and/or select the arguments you want to run them with and click Execute.
    You can even save the results to Excel for later analysis.
    https://github.com/mikaelljunghorn/BlitzDesktop

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.