Skip to content

Releases: BrentOzarULTD/SQL-Server-First-Responder-Kit

2026-04-07 Release: New sp_kill, sp_BlitzIndex AI

07 Apr 12:43
a09a03f

Choose a tag to compare

If there was ever a release you should skip for reliability reasons, it's this one. There's a lot of AI-edited code in here. I'm really only putting it out there because I want to let early adopters start playing around with a few new things:

  • sp_BlitzIndex adds an @ai parameter to get index consolidation advice for a single table.
  • A breaking change in the AI config tables for sp_BlitzCache (and now, sp_BlitzIndex as well.) We used to have both the AI providers and prompts in the same table, but I needed to normalize that out into two tables now that we're adding AI capabilities to more procs. If you've started playing around with sp_BlitzCache's AI config table, run this script to migrate your configs to the new table structure before running the new version of sp_BlitzCache.
  • Added a new SQL Server Setup Checklist markdown file in the Documentation folder. This replaces the old PDF doc that we used to distribute, but it hadn't been updated in years. I did a quick pass with some basic updates, and folks are welcome to add their own guidance. Just create a Github issue first describing the kinds of changes you'd like to make so that you can have a community discussion about the guidance - I wanna make sure the right stuff ends up in there.
  • There's a new sp_kill stored procedure, driven by your design ideas. I'll be blogging more about this in the coming weeks, but wanted to get the first draft out there for a client who needed it ASAP. You're welcome to use it now, and log any issues you find with it.
  • Starting with this release, we only support SQL Server 2016 SP2 & newer. Remember, even SQL Server 2016 drops out of support in 3 months, and 2014's been out of support for 2 years. If you need to tune your Antiques Roadshow servers, use the scripts in the Deprecated folder. Why SP2 and not RTM or SP1? Because SP2 added a ton of DMVs and columns in existing DMVs.
To see how these work, read the documentation. In the coming weeks, I'll be updating my (still free!) class, How I Use the First Responder Kit, with details on the AI calls and sp_kill.

To get the new version:

sp_Blitz Changes

  • Fix: wrap sp_Blitz, sp_BlitzIndex, sp_BlitzAnalysis, and sp_DatabaseRestore stored proc contents in a BEGIN and END to make it easier to automate updates to the Consultant Toolkit. (#3851)
  • Fix: code modernization for SQL Server 2016 & newer. (#3872)

sp_BlitzCache Changes

  • Enhancement: return oversized >128 node plans inline instead of asking the user to run a separate query. (#3868, thanks Erik Darling.)
  • Enhancement: add per-database warnings for duplicate and single-use plans to help narrow down which apps are causing the problems. (#3878, thanks Erik Darling.)
  • Fix: wrong parameter name in readme.md fixed. (#3861, thanks Ioan Podaru.)
  • Fix: skip @ai = 1 calls when query plan is null, and allow @ai = 2 to build a prompt even when there's no query plan, just a query text. (#3855 and #3854)
  • Fix: invalid column reference in AI-generated code. (#3880, thanks shekarkola.)
  • Fix: code modernization for SQL Server 2016 & newer. (#3870)

sp_BlitzIndex Changes

  • Enhancement: AI advice available at the table detail level. When calling sp_BlitzIndex @TableName = 'mytable', you can use the @ai = 2 parameter to get an AI prompt for your favorite LLM, or @ai = 1 to call the LLM directly as we do with sp_BlitzCache. (#3827)
  • Fix: code modernization for SQL Server 2016 & newer. (#3876)

sp_BlitzLock Changes

  • Fix: corrected deadlock numbering errors. (#3859, thanks Vlad Drumea.)
  • Fix: avoid duplicate rows in result sets. (#3765, thanks Tisit.)
  • Fix: nicer error messages in Azure SQL DB that include instructions on creating an event session. (#3892)

sp_BlitzWho Changes

  • Fix: code modernization for SQL Server 2016 & newer. (#3874)

sp_kill Changes

  • First version! See the documentation for more details. (#3864)

Consultant Toolkit Changes

If you're a consultant that does long term work, maintaining a client's SQL Servers, then you probably want to track the health and performance of those servers over time. You want data - in a database.

We've got a new Loader app that watches a folder for incoming zip files, and when one shows up, it processes the data to load it into a SQL Server (or Azure SQL DB) repository for you.

This means you can set up the Consultant Toolkit at your clients on a scheduled daily task, upload the data to S3 (built in) or use your own file sync methods to get it to the location of your choosing, and then have the data automatically loaded into your database server for you.

To learn more about that, read the PDF documentation included with the Consultant Toolkit.

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.

2026-03-13 Release: New AI in sp_BlitzIndex

13 Mar 20:07
d3e0c90

Choose a tag to compare

It's Friday the 13th: what could possibly go wrong with a heavily AI-driven release?

Things are changing fast, and you can blame AI. Seriously. As a tech worker, things are happening fast and furious these days. We released the First Responder Kit just last month, and that was a big update, but thanks to AI, we're able to iterate faster.

sp_BlitzIndex now offers AI advice for a table's indexes. It's as easy as:

sp_BlitzIndex @TableName = 'Users', @AI = 2;

And you get a new result set with advice from ChatGPT or Gemini:

sp_BlitzIndex AI Advice

Click on it to see the advice in more detail, in Markdown for easy copy/pasting into client-friendly recommendations:

sp_BlitzIndex AI Advice

Including the exact index creation & undo scripts:

sp_BlitzIndex AI Advice

For more details on that, check out the new documentation on Getting AI Advice in the First Responder Kit.

Another big set of commits this month: Erik Darling had the brilliant idea to run the FRK scripts through Claude Code for an automated code review. I'm kicking myself for not doing it sooner. It found a bunch of real bugs across the scripts, stuff that slipped past everybody for years, plus a lot of code quality things. You can click on each issue in the below list to see the specific fixes for each proc. Make no mistake, most of these weren't fluffy "your syntax should be better" bugs - these were real bugs, like sp_BlitzLock was over-reporting memory grant values by 8x because a DMV's contents was already in KB as opposed to data pages. That's the kind of bug that humans are rarely going to catch because we rarely do things like compare a query's memory grants between diagnostic tools and their plans.

This release has a breaking change in the AI config tables for sp_BlitzCache (and now, sp_BlitzIndex as well.) We used to have both the AI providers and prompts in the same table, but I needed to normalize that out into two tables now that we're adding AI capabilities to more procs. If you've started playing around with sp_BlitzCache's AI config table, run this script to migrate your configs to the new table structure before running the new version of sp_BlitzCache.

To get the new version:

Consultant Toolkit Changes

If you're a consultant that does long term work, maintaining a client's SQL Servers, then you probably want to track the health and performance of those servers over time. You want data - in a database.

We've got a new Loader app that watches a folder for incoming zip files, and when one shows up, it processes the data to load it into a SQL Server (or Azure SQL DB) repository for you.

This means you can set up the Consultant Toolkit at your clients on a scheduled daily task, upload the data to S3 (built in) or use your own file sync methods to get it to the location of your choosing, and then have the data automatically loaded into your database server for you.

To learn more about that, read the PDF documentation included with the Consultant Toolkit.

sp_Blitz Changes

  • Enhancement: add warning about AI-influencing Agents.md and Consitution.md extended properties being present in user databases. (#3798)
  • Enhancement: warn if Automatic Tuning is in a non-default state. (#3800, thanks Reece Goding.)
  • Enhancement: skip Google Cloud SQL admin database gcloud_cloudsqladmin. (#3818, thanks Vlad Drumea.)
  • Fix: typo in Acclerated Database Recovery Enabled. (#3796, thanks Christophe Platteeuw.)
  • Fix: typo in "individial". (#3835, thanks CuriousGeoSq and GitHub Copilot - this was our first completely robot-performed bug fix done inside of Github.com. I was delighted by how easy the process was.)
  • Fix: code review by Claude Code found 14 assorted bugs. (#3807 and #3808, thanks Erik Darling.)

sp_BlitzCache Changes

  • Breaking change: the last release used a single Blitz_AI table to hold both AI provider configurations and AI prompts. In this release, to support sp_BlitzIndex having its own set of prompts, we split that Blitz_AI table into two tables. This script will migrate the data from old to new tables. (#3823)
  • Enhancement: include the CONSTITUTION.md extended database property when building an AI prompt so that your company's code and database standards will (hopefully) be honored. (#3809)
  • Fix: performance tuning by removing a duplicate join. (#3791, thanks Connor Moolman.)
  • Fix: code review by Claude Code found 16 assorted bugs. (#3806, thanks Erik Darling.)

sp_BlitzIndex Changes

  • Enhancement: skip Google Cloud SQL admin database gcloud_cloudsqladmin. (#3818, thanks Vlad Drumea.)
  • Enhancement: add AI advice for table-level index review. (#3670, #3827, #3837)
  • Enhancement: add more support for JSON indexes. Note that SQL Server itself doesn't appear to track index usage statistics on these indexes, at least not yet as of 2025 CU3. (#3736)
  • Fix: in table level detail mode, show details for resumable index builds that are still building for the first time. (#3812, thanks Reece Goding.)
  • Fix: don't error out when @GetAllDatabases = 1 is used with restricted permissions. (#3820, thanks Vlad Drumea.)

sp_BlitzLock Changes

sp_BlitzWho Changes

Read more

2026-02-03: New AI Advice from sp_BlitzCache

03 Feb 18:08
498699e

Choose a tag to compare

The big news in this release is the new @ai parameter for sp_BlitzCache.

  • Set @ai = 1, and get a prompt you can copy/paste into the AI of your choice to help you tune the query.
  • Set @ai = 2, and we'll actually call ChatGPT or Google Gemini for you and return the advice.
@ai = 1 works on any SQL Server, Azure SQL DB, Amazon RDS, etc. @ai = 2 only works on SQL Server 2025 or Azure SQL DB. For more information on how to set it up, check out the documentation.

To get the new version:

Consultant Toolkit Changes

Updated to this quarter's First Responder Kit, but no changes to the spreadsheet template. This release adds behind-the-scenes code to export to JSON, and then import that data into a database so you can keep a centralized database with all of your clients' diagnostic data on their servers for easier analysis. If you're interested in testing that, email me at help@brentozar.com with a short description of your use case.

sp_Blitz Changes

  • Enhancement: the check for an AG secondary getting behind now works even if the secondary is offline. (#3783, thanks iant-at-scc.)
  • Enhancement: the check for linked servers now shows the name if the data source isn't configured. (#3785, thanks Steve Earle.)
  • Fix: remove unused line from sp_Blitz documentation. (#3760, thanks Reece Goding.)

sp_BlitzCache Changes

  • Enhancement: add new @ai parameter to get advice from AI. (#3669, thanks Kori Francis for the debugging.)

sp_BlitzFirst Changes

  • Fix: improve performance when thousands of sessions have open transactions. (#3766, thanks Giorgio Cazzaniga.)

sp_BlitzIndex Changes

  • Enhancement: new check for heaps with page compression enabled. (#3780, thanks Vlad Drumea.)
  • Fix: case sensitivity error with new is_json column. (#3757, thanks michaelsdba.)
  • Fix: when debug = 1, not all result sets were shown. (#3776, thanks Vlad Drumea.)
  • Fix: typo with wrong priority for missing index warning. (#3778, thanks Vlad Drumea.)

sp_BlitzLock Changes

  • Enhancement: bail out early if no rows were found in the target table. (#3787, thanks Erik Darling.)
  • Fix: table existence checks now handle situations where some, but not all, tables were set up. (#3789, thanks Erik Darling.)

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.

2025-11-24: SQL Server 2025 Release

25 Nov 03:17
c59d862

Choose a tag to compare

This quarter's release includes new checks for SQL Server 2025's new memory pressure warnings, Azure SQL DB's operations in progress, accurate CPU usage on Docker containers, warnings about not using partitioned statistics where appropriate, and much more.

There was a release two days ago for 2025-11-22, but that had an sp_BlitzIndex bug with input parameters involving database names with multiple periods in them. This release fixes that thanks to Vlad Drumea.

To get the new version:

Consultant Toolkit Changes

Updated to this quarter's First Responder Kit, but no changes to the spreadsheet template. This release adds behind-the-scenes code to export to JSON, and then import that data into a database so you can keep a centralized database with all of your clients' diagnostic data on their servers for easier analysis. If you're interested in testing that, email me at help@brentozar.com with a short description of your use case.

sp_Blitz Changes

  • Enhancement: warn if Resource Governor is set to cap TempDB usage by percentage, but the TempDB file config won't allow it. (#3721 and #3729, thanks Vlad Drumea.)
  • Enhancement: exclude AWS RDS built-in objects from warnings. (#3712, thanks Yoni Sade.)
  • Enhancement: add more information about Agent jobs w/o failure emails, like total executions, failed executions, last execution time, and status. (#3732, thanks Vlad Drumea.)
  • Enhancement: warn if SQL Server 2025's optimized locking is enabled on a database, but RCSI is not. (#3741)

sp_BlitzBackup Changes

  • Fix: no longer mangles NVARCHAR database names. (#3724, thanks OZPTR.)

sp_BlitzFirst Changes

  • Fix: accurately report CPU usage on Docker containers. (#3710, thanks Reece Goding.)
  • Fix: added a missing semicolon to fix a fuzzy underline in VS Code, bless its heart. (#3745, thanks Adrian Burla.)

sp_BlitzIndex Changes

  • Enhancement: more flexible handling of database, schema, and table name inputs and outputs. (#3739, thanks Vlad Drumea.)
  • Enhancement: sort the temporal tables in Mode 4 output. (#3727, thanks Reece Goding.)
  • Enhancement: show JSON indexes in the list of indexes, but none of the data is in place yet, like what column they're on, or sizes, or create/drop statements. Just literally wanna warn people that the object has a JSON index on it. (#3736)
  • Fix: some columns could be null when the missing indexes report was run for a specific database. (#3723, thanks Chad Baldwin.)
  • Fix: really long combos of database, schema, and table names would throw an error because a dynamic SQL variable wasn't large enough. (#3746, thanks MisterZeus.)

sp_BlitzLock Changes

  • Fix: could produce duplicate rows in some cases. This query was hella complex, and I punted it over to ChatGPT, who gave me a fix in less than a second. Fantastic. Is the fix perfect? Probably not. Neither was the original code, ha ha ho ho. (#3711, thanks Tisit.)

sp_BlitzWho Changes

  • Enhancement: you can now pass in @OutputTableName = 'schema.table' without using the separate @OutputSchemaName parameter. You can also use brackets around your object names. In Azure SQL DB, where cross-database queries aren't supported anyway, you can now just pass in @OutputTableName without specifying @OutputDatabaseName and @OutputSchemaName. (#3734, thanks Vlad Drumea.)

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.

What's Changed

Read more

2025-11-22: SQL Server 2025 Release

22 Nov 16:35
c647563

Choose a tag to compare

This quarter's release includes new checks for SQL Server 2025's new memory pressure warnings, Azure SQL DB's operations in progress, accurate CPU usage on Docker containers, warnings about not using partitioned statistics where appropriate, and much more.

Update 2025-11-24: there's a breaking bug. If you have a database with multiple periods in the name, like [Testing.1.2], sp_BlitzIndex will error out if that database is passed in as a parameter. If you use sp_BlitzIndex without parameters, or with @GetAllDatabases = 1, it still works. The bug is only present when you try to pass in the @DatabaseName parameter. We're on it, but in the meantime, if that's a problem for you, use the October release code instead.

To get the new version:

Consultant Toolkit Changes

Updated to this quarter's First Responder Kit, but no changes to the spreadsheet template. This release adds behind-the-scenes code to export to JSON, and then import that data into a database so you can keep a centralized database with all of your clients' diagnostic data on their servers for easier analysis. If you're interested in testing that, email me at help@brentozar.com with a short description of your use case.

sp_Blitz Changes

  • Enhancement: warn if Resource Governor is set to cap TempDB usage by percentage, but the TempDB file config won't allow it. (#3721 and #3729, thanks Vlad Drumea.)
  • Enhancement: exclude AWS RDS built-in objects from warnings. (#3712, thanks Yoni Sade.)
  • Enhancement: add more information about Agent jobs w/o failure emails, like total executions, failed executions, last execution time, and status. (#3732, thanks Vlad Drumea.)
  • Enhancement: warn if SQL Server 2025's optimized locking is enabled on a database, but RCSI is not. (#3741)

sp_BlitzBackup Changes

  • Fix: no longer mangles NVARCHAR database names. (#3724, thanks OZPTR.)

sp_BlitzFirst Changes

  • Fix: accurately report CPU usage on Docker containers. (#3710, thanks Reece Goding.)
  • Fix: added a missing semicolon to fix a fuzzy underline in VS Code, bless its heart. (#3745, thanks Adrian Burla.)

sp_BlitzIndex Changes

  • Enhancement: more flexible handling of database, schema, and table name inputs and outputs. (#3739, thanks Vlad Drumea.)
  • Enhancement: sort the temporal tables in Mode 4 output. (#3727, thanks Reece Goding.)
  • Enhancement: show JSON indexes in the list of indexes, but none of the data is in place yet, like what column they're on, or sizes, or create/drop statements. Just literally wanna warn people that the object has a JSON index on it. (#3736)
  • Fix: some columns could be null when the missing indexes report was run for a specific database. (#3723, thanks Chad Baldwin.)
  • Fix: really long combos of database, schema, and table names would throw an error because a dynamic SQL variable wasn't large enough. (#3746, thanks MisterZeus.)

sp_BlitzLock Changes

  • Fix: could produce duplicate rows in some cases. This query was hella complex, and I punted it over to ChatGPT, who gave me a fix in less than a second. Fantastic. Is the fix perfect? Probably not. Neither was the original code, ha ha ho ho. (#3711, thanks Tisit.)

sp_BlitzWho Changes

  • Enhancement: you can now pass in @OutputTableName = 'schema.table' without using the separate @OutputSchemaName parameter. You can also use brackets around your object names. In Azure SQL DB, where cross-database queries aren't supported anyway, you can now just pass in @OutputTableName without specifying @OutputDatabaseName and @OutputSchemaName. (#3734, thanks Vlad Drumea.)

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.

What's Changed

Read more

2025-10-02: Happy Halloween Release

02 Oct 14:11
8b3daa6

Choose a tag to compare

Y'all were busy this summer! The fall release includes new checks for SQL Server 2025's new memory pressure warnings, Azure SQL DB's operations in progress, warnings about not using partitioned statistics where appropriate, plus much more!

To get the new version:

Consultant Toolkit Changes

Updated to this quarter's First Responder Kit, but no changes to the spreadsheet template.

sp_Blitz Changes

  • Enhancement: warn if the server is under memory pressure using SQL Server 2025's new sys.dm_os_memory_history. (#3690)
  • Enhancement: reduced false warnings for Linux installations. (#3702, thanks bmercernccer and Tom Willwerth.)
  • Enhancement: add @UsualOwnerofJobs parameter so you can warn about logins other than SA if that's your thing. (#3688, thanks James Davis.)
  • Fix: servers with German languages could get an error about a subquery returning more than one value. (#3673, thanks Dirk Hondong)
  • Fix: skip checks for Managed Instances. (#3685, thanks Klaas.)

sp_BlitzCache Changes

  • Fix: implicit conversions would have problems if the parameters involved were really long. (#3681, thanks DForck42.)

sp_BlitzFirst Changes

  • Enhancement: warn if the server is under memory pressure using SQL Server 2025's new sys.dm_os_memory_history. (#3692, #3703, thanks Eilandor.)
  • Enhancement: warn about ongoing Azure operations like database restores, creations, deletions, setting up geo-replication, changing performance levels or service tiers, etc using sys.dm_operation_status. (#3708)
  • Enhancement: when a database is being restored to a new name, show the name. (#3695)

sp_BlitzIndex Changes

  • Enhancement: when @SkipStatistics = 0, warn if partitioned tables don't have incremental statistics. (#3699, thanks Reece Goding.)
  • Enhancement: add warning for persisted sampling rates. (#3679, thanks Reece Goding.)
  • Fix: on a few warnings, instead of filtering out newly created indexes, we were only looking at the new ones, hahaha. (#3705, thanks Bruce Wilson.)
  • Fix: possible arithmetic overflow. (#3701, thanks Reece Goding.)

sp_BlitzLock Changes

  • Fix: unusual situations might have left folks unable to create permanent output tables. (#3666 and #3667, thanks Filip Rodik.)

sp_BlitzWho Changes

  • Enhancement: get live query plans by default on SQL Server 2022 & newer. (#3694)

sp_ineachdb Changes

  • Fix: change @is_query_store_on default to null. (#3668, thanks kmorris222.)

Watch Me Working On It

In this live stream, I handle a few pull requests, then add support for SQL Server 2025's new sys.dm_os_memory_health_history:

https://youtu.be/g0U8IZ0PM0E

The work continues in this video:

https://youtu.be/8cSeHA1Ywh4

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.

2025-07-04: Celebrating Your Independence Release

04 Jul 14:18
d791ef5

Choose a tag to compare

I'mma wax philosophical for a second: I love the open source nature of the First Responder Kit because it lets anybody, anywhere, diagnose database problems faster. If you're a full time employee somewhere today, you owe it to yourself to use the FRK scripts because if you ever switch from one company to another, your employment agreement will probably require that you leave your old scripts behind. (I've actually been involved in a lawsuit where a DBA took his T-SQL scripts to his next job, and got sued for it.)

Someday, I hope you celebrate your own personal independence and get to define your own success, and I hope the First Responder Kit scripts help in some small way.

Anyhoo, if you do live performance tuning of workloads under stress, you'll find a lot of little quality-of-life enhancements in this quarter's release.

To get the new version:

Consultant Toolkit Changes

Updated to this month's First Responder Kit, but no changes to the spreadsheet template.

sp_Blitz Changes

  • Enhancement: add warning for AG replica more than 60 seconds behind. (#3635)
  • Enhancement: add warnings for SQL Server 2025's new database scoped configurations and sys.configurations. (#3646 and #3657)
  • Enhancement: clarify warning text about AD groups in case they're empty. (#3648, thanks Jane Palmer.)
  • Fix: was returning multiple warnings if trace flag 7745 wasn't enabled and Query Store was enabled. (#3627)
  • Fix: exclude model database from Query Store checks. (#3654)

sp_BlitzCache Changes

  • Enhancement: can now do plan cache analysis on read-only secondaries. (#3632)

sp_BlitzFirst Changes

  • Enhancement: add warning for deadlocks happening during the live sample. (#3637)
  • Enhancement: add total thread time to headline news result set. (#3631)
  • Enhancement: move "Avg ms Per Wait" to the left in result sets because it's so useful for troubleshooting storage, CPU, and blocking waits. (#3629)
  • Fix: warnings about restores happening now weren't firing on Amazon RDS. (#3643)

sp_BlitzLock

sp_ineachdb

  • Enhancement: adds new parameters for @is_ag_writeable_copy and @is_query_store_on. (#3651, thanks bwiggin10.)

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.

What's Changed

New Contributors

Full Changelog: 2025040...2025070

2025-04-07: The Expert's Release

07 Apr 11:27
1ffec64

Choose a tag to compare

This quarter's release contains a few advanced warnings & tools, like table output for sp_BlitzLock, new warnings about paused resumable index operations that will be deleted automatically by SQL Server 2022, and a new option to maintain carriage returns and line feeds in sp_BlitzCache's output.

To get the new version:

Consultant Toolkit Changes

Updated to this month's First Responder Kit, but no changes to the spreadsheet template.

sp_Blitz Changes

  • Enhancement: added warning for non-default database scoped configuration changes for SQL Server 2022's options, like PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES. (#3620, thanks Reece Goding.)
  • Fix: @OutputType = 'markdown' would fail if the output had an ampersand in it. (#3610, thanks Roger Dawkins.)

sp_BlitzCache Changes

  • Enhancement: new @KeepCRLF parameter lets you retain the carriage returns & line feeds in query text if you want. (#3611, thanks Vlad Drumea.)

sp_BlitzIndex Changes

sp_BlitzLock Changes:

  • Enhancement: add table mode output. New parameters for @TargetDatabaseName, @TargetSchemaName, @TargetTableName, etc. (#3614, thanks Erik Darling!)

sp_DatabaseRestore Changes:

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.

2024-12-28: The Smallest Release of the Year

28 Dec 11:45
432552c

Choose a tag to compare

If there was ever a release you could skip, this is probably the one, because you could count this release's changes on just one hand! Well, assuming you were an alien with six fingers. I won't even recap the most important changes - you can just scroll down and read 'em.

To get the new version:

Consultant Toolkit Changes

Updated to this month's First Responder Kit, but no changes to the spreadsheet template.

sp_Blitz Changes

  • Enhancement: when @CheckServerInfo = 1, we now return target & total memory counter outputs for easier troubleshooting of memory pressure. (#3586)
  • Fix: when @OutputType = 'markdown', a recently added check could return an invalid XML character, breaking the output. (#3593, thanks Igor Galiney.)
  • Fix: if you ran sp_Blitz with VIEW SERVER STATE permissions, and you were the db_owner of master, but you didn't have ALTER TRACE permissions, you would have gotten an error. (#3581, thanks Tisit.)
  • Fix: if you had really, really, really big data files, you could get an arithmetic overflow. (#3599, thanks songomajk.)

sp_BlitzIndex Changes

  • Enhancement: new first parameter @object Name, so you can now call it even faster by putting an object's name as the only parameter, like 'schema.tablename', for the current database. No need for separate @SchemaName and @TableName parameters, although we kept those to avoid breaking changes. (#3587, thanks Goran Schwarz.)
  • Fix: when @debug = 1, we were returning the #BlitzIndexResult set twice instead of once. (#3590, thanks Vincenzo Marchese.)

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.

What's Changed

New Contributors

Full Changelog: 2024101...2024122

2024-10-19: More Inclusive Language for sp_BlitzIndex

19 Oct 10:52
cf11c4e

Choose a tag to compare

The wording of all of sp_BlitzIndex's warnings is now much more clear and inclusive thanks to hard work by W. Eli Hayes and VladDBA.

When Kendra Little first wrote sp_BlitzIndex about a decade ago to help you analyze your index designs, we brainstormed about how to surface warnings. Index design is not black and white: for example, for some tables and workloads, 10 nonclustered indexes isn't a big deal, but for other tables and workloads, it's way too many and causes blocking issues. So we needed a way to talk about warnings in a fun way that indicated some professional analysis was required, and that the situation may or may not be a big deal. We settled on psychological-sounding phrases like "Index Hoarder", "Aggressive Indexes", "Abnormal Psychology", etc.

The psychological terms worked, but we had to explain 'em every time. They were more of a barrier to understanding than an enhancement. So now, your sp_BlitzIndex advice looks more like this:

Simpler, clearer, and more inclusive. Although now I gotta go re-record all my index training, hahaha! I'll work on that after the Black Friday sales finish.

To get the new version:

Consultant Toolkit Changes

Updated to this month's First Responder Kit, but no changes to the spreadsheet template. In case you haven't upgraded in a few months, you're probably upgrading now because your old version has expired, so here's what we did in May because the changes were pretty big:
  • 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 on the machine where you run the Consultant Toolkit, typically your jump box or laptop (not the SQL Server itself)

sp_Blitz Changes

  • Enhancement: added checks for unusual Query Store configurations and missing trace flags. (#3553, thanks Reece Goding.)
  • Fix: when it was run without SA permission, it would throw a false error about the number of TempDB files not matching. (#3578, thanks Tisit.)
  • Fix: when it was run with SA permission, the "No Failsafe Operator Configured" wasn't being reported. (#3577, thanks Tisit.)
  • Fix: added some wait types to the ignorable wait type list. (#3562, thanks Reece Goding.)
  • Fix: when it was run with SA permission, the invalid logins check wasn't being reported. (#3551, thanks PowerDBAKlaas.)

sp_BlitzIndex Changes

  • Enhancement: change index warnings from psychological terms, to more inclusive ones. (#3571, thanks W. Eli Hayes and VladDBA.)
  • Enhancement: faster processing of missing indexes. (#3556, thanks Matt Maddocks and Dean MacFadyen for reporting.)

sp_BlitzLock Changes

  • Fix: @debug = 1 would throw an error if your plan cache was empty. (#3567, thanks VladDBA.)
  • Fix: the @OutputTableName parameter would sometimes throw errors depending on your database context. (#3566, thanks BilliousBT.)
If you wanna watch me troubleshooting the sp_BlitzLock errors, this is a fun one-hour live stream of me working on that last bug:

https://youtu.be/tSpDiERowgY

sp_DatabaseRestore Changes

  • Enhancement: fix backup file selection for non-split full backups used with the @StoPAt command. (#3560, thanks Rob Hague.)

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.