Skip to content

2024-05-22: sp_BlitzFirst & sp_BlitzIndex Features

Compare
Choose a tag to compare
@BrentOzar BrentOzar released this 22 May 22:36
· 95 commits to main since this release
4e2cbda

If you've hard-coded installer file names, there's a big change in this release. There are now just 2 installer scripts: Install-All-Scripts.sql, and a new Install-Azure.sql, which only installs the scripts that are compatible with Azure SQL DB. The old Install-Core scripts are gone because we've deprecated sp_AllNightLog, sp_BlitzInMemoryOLTP, and sp_BlitzQueryStore. Read on for why.

To get the new version:

Consultant Toolkit Changes

This app has been awesomely stable & useful for years, but this month we finally had to pop the hood open to make a few big changes:
  • Supports Microsoft Entra multi-factor authentication (MFA)
  • Automatically retries failed connections, allowing you to more easily gather data from Azure SQL DB Serverless databases that auto-paused
  • No longer requires create-table permissions, so it works better in environments where you can pull diagnostic data but not see database contents
  • Requires .NET Desktop Runtime 7 or higher
That last bullet point refers to the machine where you're collecting data from, typically your jump VM or laptop. I really do hate minimum requirements, but that desktop runtime is a really fast & easy install that doesn't require a reboot. It was necessary to get the MFA authentication working.

Just to be super-safe, I'd keep the prior version around so that if you hit a weird client issue, you can still gather data. If you run into any issues, shoot us an email at help@brentozar.com and we'll work through it with you.

I also updated it to this month’s First Responder Kit, but no changes to querymanifest.json or the spreadsheet. If you’ve customized those, no changes are necessary this month: just copy your spreadsheet and querymanifest.json into the new release’s folder. However, in the Dec 2023 release, we we did update those files, so if you haven't updated the Consultant Toolkit in a while and you've customized it, read that version's release notes about updating.

sp_Blitz Changes

  • Enhancement: new checks for SQL Server service & Agent service accounts that have too much permissions. (#3481, thanks Vlad Drumea.)

sp_BlitzFirst Changes

  • Enhancement: add 2 option for @expertmode to skip sp_BlitzWho output. Could already do this with the @OutputResultSets option, but this is much easier to do during emergencies. (#3486)
  • Enhancement: better startup/failover time detection in Azure SQL DB. (#3504)
  • Enhancement: new warning about approaching max worker threads. (#3491)
  • Fix: under heavy load, the headline news wait stats lines would underreport the number of seconds that the sample took. (#3507)
  • Fix: when the Hekaton "Garbage Collection in Progress" warning fires, mention that it can also be caused by a stressed-out memory-optimized TempDB. (#3488)
  • Fix: don't show the plan cache result set if it's not asked for in @OutputResultSets. (#3492)
  • Fix: incorrect URL for slow data file reads. (#3483, thanks Matt Mollart.)

sp_BlitzIndex Changes

  • Enhancement: performance tuning by skipping queries we don't need depending on the mode. (#3462, thanks Erik Darling.)
  • Enhancement: skip filtered indexes checks if they don't have permissions to query sys.sql_expression_dependencies. (#3522)
  • Fix: restore SQL Server 2014 compatibility. (#3452, thanks Brianc-DBA and others for reporting.)
  • Fix: unreachable databases are now excluded from the total database count. (#3516, thanks Gary Hunt.)
  • Fix: using DB_NAME() in more places for consistency. (#3517, thanks Gary Hunt.)
  • Fix: fixed typos. (#3519, #3515, #3512, thanks Gary Hunt.)

sp_DatabaseRestore Changes

  • Enhancement: during installation, if they don't already have Ola's scripts, explain why they're about to see warnings. (#3499)

Deprecating sp_BlitzInMemoryOLTP, sp_BlitzQueryStore, and sp_AllNightLog

sp_BlitzQueryStore was originally written by Erik Darling when he worked here. He's moved on to start his own excellent company, plus his own sp_QuickieStore. You should be using that instead.

sp_BlitzInMemoryOLTP was always kinda distributed as a courtesy - the real home for it is in KTaranov's Github repository, and you can still find it there. It hasn't been updated in over 6 years, and I've never seen anyone using it, so I'm removing it to streamline support issues.

sp_AllNightLog was a ton of fun when we built it several years ago, but it's consistently had a problem. Companies start using it, then decide they want to build something even more ambitious, typically a C# service with robust error handling and scheduling. sp_AllNightLog isn't the kind of thing I want to encourage beginners to use - it's complex.

So when Reece Goding started working on cleaning up sp_BlitzQueryStore's code, I decided that now was the time to deprecate stuff we no longer use or recommend. You're definitely welcome to continue to use 'em if you get value out of 'em! I've going to move these procs into the Deprecated folder, plus simplify the installation scripts. For the rest of 2024, the only installer script will be Install-All-Scripts.sql.

For Support

When you have questions about how the tools work, talk with the community in the #FirstResponderKit Slack channel. Be patient: it's staffed by volunteers with day jobs. If it's your first time in the community Slack, get started here.

When you find a bug or want something changed, read the contributing.md file.

When you have a question about what the scripts found, first make sure you read the "More Details" URL for any warning you find. We put a lot of work into documentation, and we wouldn't want someone to yell at you to go read the fine manual. After that, when you've still got questions about how something works in SQL Server, post a question at DBA.StackExchange.com and the community (that includes me!) will help. Include exact errors and any applicable screenshots, your SQL Server version number (including the build #), and the version of the tool you're working with.