SQL Server First Responder Kit Versions Save

sp_Blitz, sp_BlitzCache, sp_BlitzFirst, sp_BlitzIndex, and other SQL Server scripts for health checks and performance tuning.

20220408

2 years ago

Wow, talk about stable! The last 3 months have only introduced a series of small bug fixes. I held this release back as long as I could, waiting to see if anything major might get added or if we might get a SQL Server 2022 CTP, but no dice. If there was ever a First Responder Kit release you could skip, it's probably this one. If the specific issues listed here don't affect you, take the morning off.

To get the new version:

Consultant Toolkit Changes

I 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.

sp_Blitz Changes

  • Fix: don't warn people about multiple log files for the same database on the same drive if the sum of the log files is 2TB or more, since that's the max log file size. (#3081, thanks Henrik Staun Poulsen.)
  • Fix: uninstall script works even if databases have different collations. (#3077, thanks Fiander.)
  • Fix: don't crash if sys.plan_guides holds a hint with a double quoted index name. (#3059, thanks Frank Renesnicek.)
  • Fix: arithmetic overflow on large database growth sizes. (#3063, thanks David A. Poole.)

sp_BlitzFirst Changes

  • Fix: the recently updated stats check was only running in the current database. (#3076)

sp_DatabaseRestore Changes

  • Fix: @StopAt now works for differential backups. (#3061, thanks Rob Hague.)
Bonus changes: Anthony Green kept the SQL Server versions file up to date.

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: https://github.com/BrentOzarULTD/SQL-Server-First-Responder-Kit/compare/20220108...20220408

20220108

2 years ago

In this release, sp_Blitz shows some information about clusters and AGs, sp_AllNightLog and sp_DatabaseRestore get some love, and more.

To get the new version:

sp_AllNightLog Changes

  • Enhancement: now works in any database as long as Ola Hallengren's scripts are installed in the same database. (#3009, thanks Nick Fotopoulos.)
  • Enhancement: there's a new configuration record to allow data/log files to be moved to the instance's default directory. (#3046, thanks Dale Hirt.)

sp_Blitz Changes

  • Enhancement: now displays information about clusters and Availability Groups. (#2976, thanks Ragatilao.)
  • Fix: xp_regread no longer errors out if registry keys aren't found. (#2836, thanks ScottL1969 and Andreas Jordan.)

sp_BlitzIndex Changes

sp_DatabaseRestore Changes

  • Enhancement: the @StopAt parameter is now a real point in time restore, not just stopping at the transaction log before that point, but going up to that moment in time in the last log backup. (#3038, thanks Daniel van der Meulen.)
Bonus changes: Anthony Green kept the SQL Server versions file up to date, and Konstantin Taranov improved the repo's readme.md.

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.

20211106

2 years ago

Just like you, the First Responder Kit has been pretty much stable for the last couple of months. There have been a few small changes, but nothing too big. There are a few pending pull requests that folks are working on around an open source setup checklist, better support for Ola Hallengren's scripts, and a new stored procedure to get cluster information. If you want to influence how the production versions of those shape up, head over to the pending pull requests, look at the related issues, and give your feedback.

To get the new version:

sp_Blitz Changes

sp_BlitzCache Changes

  • Fix: when called by sp_BlitzFirst with @OutputType = 'none', don't output a result set. (#2998, thanks Andreas Jordan.)

sp_BlitzIndex Changes

  • Bug: Mode 4 wasn't scripting out the definitions of unique constraints. (#3006, thanks Erik Darling.)

sp_BlitzWho Changes

  • Fix: new @GetLiveQueryPlan parameter, defaults to 0. On some builds of SQL Server 2019, we've seen access violations parsing the XML in live query plans. That's a bug in SQL Server, and we tried to file an issue for it on Connect, and then we tried to file an issue on Feedback.Azure.com, and then we gave up. If you want the live query plan and you aren't worried about SQL Server access violations, turn this switch on. (#3011, thanks Greg Dodds.)

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.

Auto-Generated Changelog

New Contributors

Full Changelog: https://github.com/BrentOzarULTD/SQL-Server-First-Responder-Kit/compare/20210914...20211106

20210914

2 years ago

I've slowed the First Responder Kit update frequency down to once every 2 months. I know from firsthand experience working with clients that folks just can't patch quickly enough, hahaha. Folks who want to be on the bleeding edge updates can always use the dev branch in Github, too, getting every new fix the moment it's merged.

Wanna learn how I use it? Register for my free one-day class on Oct 19th or 20th on How I Use the First Responder Kit, or buy the recordings.

To get the new version:

Consultant Toolkit Changes

I 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.

sp_Blitz Changes

  • Fix: if databases aren't online, don't alert on non-default database settings. For example, if someone's got a database offline or in restoring state, they shouldn't be alerted about the delayed durability setting on that database. (#2984, thanks David Schanzer.)
  • Fix: added 1204's explanation when the trace flag is enabled. (#2985, thanks Erik Darling.)

sp_BlitzFirst Changes

sp_BlitzIndex Changes

  • Improvement: scripting for unique constraints. (#2950thanks Erik Darling.)
  • Improvement: new informational (priority 250) check to tell folks when optimize_for_sequential_key is enabled for an index. Only shows up in Mode 4 since it's a low-priority action that you don't usually have to do anything about. (#2963 and #2991thanks Erik Darling and FlatlandR.)
  • Improvement: new unindexed foreign key check. (#2964thanks Erik Darling.)

sp_BlitzWho Changes

sp_DatabaseRestore Changes

  • Improvement: new @SetTrustworthyOn parameter lets you enable this on newly restored databases. (#2981, thanks jesusnac.)
  • Fix: if the database status isn't already in restoring, try to set it into single user mode. (#2960, thanks jesusnac.)

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.

20210725

2 years ago

I'm slowing the First Responder Kit update frequency down to once every 2 months. I know from firsthand experience working with clients that folks just can't patch quickly enough, hahaha. Folks who want to be on the bleeding edge updates can always use the dev branch in Github, too, getting every new fix the moment it's merged.

To get the new version:

Consultant Toolkit Changes

  • Improvement: added "Buffer Pool Scan" to the list of things we show from the error log. (Thanks Erik Darling.)
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.

sp_Blitz Changes

  • Improvement: new warning when target recovery interval <> 60. (#2938, thanks Erik Darling.)
  • Fix: sp_Blitz installation was failing on unpatched 2012/2014/2016 builds due to last month's Amazon RDS tweaks. (#2921, thanks Gianluca Hotz.)
  • Fix: output to table wasn't sorting by database, so if you were querying the output table and sorting by ID, you didn't get exactly the same order as the interactive output. (#2937, thanks Johan Parlevliet.)
  • Fix: only alert about the Query Store cleanup bug on SQL Server 2016, not 2019. (#2946, thanks FlatlandR.)
  • Fix: avoid collation errors when pulling the #SkipChecks list from a linked server with a different collation. (#2949, thanks David Schanzer.)

sp_BlitzCache Changes

sp_BlitzFirst Changes

  • Improvement: add total thread time to wait stats views. Total thread time is the total amount of time spent executing queries, whether waiting on something or burning CPU, including parallel child threads. The Github issue is still open because we'll be putting additional work & blogging into this over the coming weeks & months. It's helpful when troubleshooting servers with plan cache amnesia, but I need to write more about how & why. (#2913, thanks Erik Darling.)
  • Fix: enabled the Sleeping Query with Open Transactions alert. (#2922, thanks Eitan Blumin.)
  • Fix: was showing multiple active backups if backup scripts were running from the context of a user database rather than master. (#2941, thanks Adrian Buckman.)

sp_BlitzIndex Changes

  • Fix: corrected "JIndex" to "Index" in one of the warnings. (#2927)
  • Fix: improve uptime measurement on Azure SQL DB. (#2933, thanks David Wiseman.)
  • Fix: the statistics section now shows up even if you're calling sp_BlitzIndex across databases. (#2954, thanks MisterZeus.)

sp_BlitzWho Changes

  • Improvement: new @GetOuterCommand parameter. When set to 1, shows the outer calling query. (#2887, thanks Adrian Buckman.)

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.

20210530

2 years ago

If you want to quickly understand the top health and performance issues on your SQL Server, there's no better, easier, free-er way to do it than the open source First Responder Kit.

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

To get the new version:

Consultant Toolkit Changes

  • Improvement: on SQL Server 2019, we export a sample query plan for each missing index request. This helps you know the kinds of queries that are triggering missing indexes, and helps you hand-craft an even better index.
That change does mean a new querymanifest.json, but no changes to the spreadsheet. You only need to use the new querymanifest.json if you want that new feature - otherwise, just copy your spreadsheet and querymanifest.json into the new release's folder. (I'm planning a new first tab for the spreadsheet for next month's release, so I don't want you to have to do this work twice if you've been doing customizations - next month's release will be the bigger bang for the buck there.)

sp_Blitz Changes

  • Improvement: if you've accidentally got "show actual execution plans" turned on while running any of the First Responder Kit scripts, it's now automatically turned off inside the proc. (#2911, thanks Daniel Hutmacher and Erik Darling.)
  • Fix: now skips Instant File Initialization check on Amazon RDS because we can't run xp_errorlog. (#2879, thanks Ray Rankins.)
  • Fix: more Amazon RDS compatibility improvements. (#2888, thanks Ray Rankins.)
  • Fix: Agent jobs without failure emails were only showing up in the alerts if they were scheduled. (#2905, thanks Mike Scalise.)

sp_BlitzCache Changes

  • Fix: queries with a duration of more than 2,147,483 seconds (that's 596 hours) would cause an arithmetic overflow. (#2890, thanks Ron MacNeil.)
  • Fix: the Multiple Plans warning was only including the number of plans in the top 10 result set, and now instead shows the total number of cached plans for this query altogether. (#2900, thanks Erik Darling.)
  • Fix: the Many Duplicate Plans warning math is getting closer to accurate. (#2909, thanks Erik Darling.)

sp_BlitzFirst Changes

  • Fix: in the high CPU details in the How to Stop It column, results could be out of order depending on varchar sorting. (#2876 and #2878, thanks Adrian Buckman.)

sp_BlitzIndex Changes

  • Improvement: table-level columnstore visualization on partitioned tables now shows the partition boundaries. (#2860, thanks Nick Papatonis.)
  • Fix: included columns now show their correct sizes in bytes. (#2880, thanks Scott Holiday.)
  • Fix: SQL Server 2019's new sample query plan for missing indexes is now more likely to produce a query that generated the missing index request. I think there's still possibility for edge cases here where this is wrong, and the 2019 user base is so small that we don't have great testing on this yet. (#2883, thanks Greg Dodd and Erik Darling.)

sp_BlitzLock Changes

sp_BlitzWho Changes

sp_DatabaseRestore Changes

  • Fix: the @StopAt and @OnlyLogsAfter parameters couldn't be used at the same time. (#2898, thanks Greg Dodds.)

SqlServerVersions.sql Changes

  • Fix: the uninstall.sql script now removes this table from any database, not just the current one. (#2893, thanks Andreas Jordan.)
  • Fix: updated the latest build numbers. (#2897, thanks Anthony Green.)

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.

20210421

3 years ago

This month's release has two gems for SQL Server 2019 users. First, thanks to Greg Dodd, when you're dealing with parameter sniffing issues, sp_BlitzWho can now show you the cached and live parameters for running queries. This lets you quickly see when the parameters may be wildly different, leading to issues like incorrect memory grants and index choices:

Second, thanks to Erik Darling: when sp_BlitzIndex shows a missing index recommendation, it also shows you one of the queries that triggered the missing index request:

Both of these require SQL Server 2019, and they're both just awesome for performance tuners. There's lots more new stuff this month too - keep scrollin' for more details. Unlike Microsoft's SQL Server Cumulative Updates, we actually take the time to link to each Github issue so you can see exactly what changed. We figure it's the least we can do for you, dear reader.

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

To get the new version:

Consultant Toolkit Changes

I 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.

sp_Blitz Changes

  • Fix: no more arithmetic overflow when we check drive space on a drive with 8MB free. (#2837, thanks ScottL1969.)
  • Fix: removed language that suggested SQL Server needed a domain account. I don't want sp_Blitz to be used as a security audit tool, and our warning wording was misleading there. (#2854)
  • Fix: the USERSTORE_TOKENPERM cache size check had the wrong math. (#2858, thanks Erik Darling.)
  • Fix: volume names were getting truncated on the drive space alerts. (#2865, thanks Erik Darling.)

sp_BlitzCache Changes

sp_BlitzFirst Changes

  • Improvement: when @OutputXMLasNVARCHAR = 1, output is trimmed to 32K for easier copy/pasting into Excel. (#2823, thanks Ties Voskamp.)

sp_BlitzIndex Changes

  • Improvement: SQL Server 2019 users can see an example of the query that triggered a missing index request. (#2185, thanks Erik Darling.)
  • Improvement: new @ShowColumnstoreOnly parameter lets you visualize the columnstore contents for a table. This was always shown with table-level details (if you pass in a table's name), but it was the last result set, and it can be pretty long for big tables. This way your results are easier to see on big monitors. I'll be using this a lot in my Fundamentals of Columnstore class. (#2851, thanks DjHeath2000.)
  • Improvement: new @SortOrder options for 'create date' and 'modify date' for @Mode = 2, the inventory of your indexes. (#2845, thanks Erik Darling.)

sp_BlitzLock Changes

  • Fix: removed questionable documentation text. (#2849, thanks AdrianB1.)

sp_BlitzWho Changes

  • Improvement: new @ShowActualParameters (default 0) will show you the parameters that were used to compile and to run the execution plan. Only works on SQL Server 2019 & newer. (#2591, thanks Greg Dodd for heroically working around memory dump bugs in SQL Server to get this across the finish line.) These new columns also get logged to sp_BlitzWho's output tables, and we'll automatically add the columns if they don't exist.
  • Fix: the above improvement broke on case-sensitive collations. (#2870, thanks Adrian Buckman.)

sp_DatabaseRestore Changes

  • Fix: no more arithmetic overflow when you try to restore a database with over 32,768 log backups. (#2839)

SqlServerVersions.sql Changes

  • Fix: corrected the build number for SQL Server 2017 CU23. (#2856, thanks Anthony Green.)

For Support

When you have questions about how the tools work, talk with the community in the #FirstResponderKit Slack channel. If you need a free invite, hit SQLslack.com. Be patient - it's staffed with volunteers who have day jobs.

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.

20210322

3 years ago

Ten years ago, I unveiled sp_Blitz at the 2011 PASS Summit, in front of a live audience.

Remember the PASS Summit?

Remember live audiences?

<sigh>

Anyway, to celebrate the 20th anniversary of BrentOzar.com, I've thinking back about the last couple of decades to reminisce about what I've learned, what's changed, and so forth.

Open source kinda sorta existed when I got started with computers as a kid way back in the 1980s. I would buy a programming magazine, prop it up in front of the computer, and actually type programs in by hand on my Commodore 64. Lemme just tell you, that sucked. I've been bad at debugging for four decades.

Today, anybody in the world can install open source utilities in a matter of seconds, make their job easier, increase their value as a professional, and give back to those same open source projects. It's not fair to say that your Github profile is the new resume - most folks just don't have the time to contribute to open source, nor are they allowed to at your day job. However, I think it's fair to say that your Github profile is one of many possible advantages when competing for a job. When someone asks, "Do you have experience with X?" it's amazing to be able to answer, "Yes, and I've even contributed code and documentation to X. Here's my Github profile, and here are some of my interactions with the team."

So with that said, here's this month's new version of the First Responder Kit. It's free - free as in speech - and it thrives thanks to the community members mentioned in the changes below. They're real people just like you with day jobs, and they decided that they wanted to contribute or fix something. They're the heroes that make this whole thing work.

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

To get the new version:

Consultant Toolkit Changes

I 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.

sp_Blitz Changes

  • Improvement: we ignore databases named DBAdmin, DBAtools, and DBMaintenance. (#2787, thanks Erik Darling.)
  • Fix: made all of the scripts consistently refer to https://www.brentozar.com rather than variations without https, the www domain, etc. (#2808, thanks John D. Ballentine III.)
  • Fix: removed the checks for active & inactive heaps in user databases. This is covered really well by sp_BlitzIndex now, and it's slow in sp_Blitz. (#2818, thanks Erik Darling.)

sp_BlitzAnalysis Changes

  • This is the second release that includes sp_BlitzAnalysis by Adrian Buckman. If you want to install this script, install sp_BlitzAnalysis.sql - it's not included in the normal installation scripts yet just to limit the blast radius in case something goes wrong. For tips on how to use it, check out the documentation. For questions or problems, see the "For Support" section of this doc.
  • Fix: expanded one of the columns from the money datatype up to decimal(38,2) to handle big data. (#2807, thanks Ian Menton.)

sp_BlitzCache Changes

  • Improvement: when @IgnoreSystemDBs = 1, we ignore queries with a context of databases named DBAdmin, DBAtools, and DBMaintenance. (#2787, thanks Iomckee.)
  • Improvement: @OutputType parameter now accepts 'NONE'. (#2817, thanks Jefferson Elias.)

sp_BlitzFirst Changes

As we mention in the documentation, Azure SQL DB isn't technically supported by any of the First Responder Kit scripts because Azure SQL DB doesn't have all of the cool diagnostics stuff that we get on-premises, like sp_MSforeachdb. However, at some point in the future, we'll officially support a lot of them up there, and this month's changes inch us towards that.
  • Improvement: in Azure SQL DB, we now sys.dm_db_wait_stats instead of sys.dm_os_wait_stats. (#2821)
  • Improvement: pass @OutputType parameter to sp_BlitzCache so if you specify 'NONE', there really is no output. (#2817, thanks Jefferson Elias.)
  • Fix: insert of changed statistics would sometimes fail. (#2738, thanks Jefferson Elias.)
  • Fix: Azure SQL DB was erroring out due to addition of sp_MSforeachdb in the recently changed statistics check. (#2819)

sp_BlitzIndex Changes

  • Improvement: we ignore databases named DBAdmin, DBAtools, and DBMaintenance. (#2787, thanks Erik Darling.)

sp_BlitzLock Changes

sp_BlitzWho Changes

  • Fix: in the deltas view, expanded one of the columns from the money datatype up to decimal(38,2) to handle big data. (#2813, thanks Ian Menton.)

sp_DatabaseRestore Changes

  • Improvement: you can now move the full text catalogs with the new @MoveFullTextCatalogDrive parameter. (#2805, thanks Frederik Vanderhaegen.)

For Support

When you have questions about how the tools work, talk with the community in the #FirstResponderKit Slack channel. If you need a free invite, hit SQLslack.com. Be patient - it's staffed with volunteers who have day jobs.

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.

20210222

3 years ago

Along with the usual bug fixes & improvements, this month's release includes a brand new sp_BlitzAnalysis script from Adrian Buckman. It's for folks who have an Agent job to log sp_BlitzFirst to tables every 15 minutes, saving wait stats, Perfmon counters, file stats, etc into tables. sp_BlitzAnalysis reads those tables and sums up activity in your chosen time period, like this:

To install it, run the sp_BlitzAnalysis.sql file included in the First Responder Kit. It's not a complex installation or anything - I just didn't want to include it in the main installer scripts because this is the first public release, and I haven't tested it myself yet either. (Been a little busy with the whole Iceland move.) To learn how to use sp_BlitzAnalysis, read the documentation. For questions or support on it, hop into the #FirstResponderKit Slack channel. (If you need a free invite, hit SQLslack.com. Be patient - it's staffed with volunteers who have day jobs.

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

To get the new version:

Consultant Toolkit Changes

I 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.

sp_Blitz Changes

  • Fix: the check for the most recent CHECKDB dates was running even when @CheckUserDatabaseObjects = 0. This was the only instance where we were using sp_MSforeachdb with @CheckUserDatabaseObjects = 0, so it'd slow sp_Blitz down on instances with hundreds or thousands of databases. (#2779)
  • Fix: put comments around the term xp_cmdshell to fool a firewall. (#2788, thanks TLovie.)
  • Fix: changed typo of BrenOzar.com to BrentOzar.com on one check. (#2786, thanks Michael Gowan.)

sp_BlitzAnalysis Changes

  • All new! This is the first release that includes sp_BlitzAnalysis by Adrian Buckman. If you want to install this script, install sp_BlitzAnalysis.sql - it's not included in the normal installation scripts yet just to limit the blast radius in case something goes wrong.
  • For tips on how to use it, check out the documentation.
  • For questions or problems, see the "For Support" section of this doc.

sp_BlitzCache Changes

  • Improvement: default output now includes PlanGenerationNum from sys.dm_exec_query_stats. Helps troubleshoot scenarios where the plan is frequently recompiling due to statistics changes. (#2792, thanks Tom Lovie.)
  • Fix: a recent release broke @SortOrder = 'recent compilations', and that's fixed. (#2772)

sp_BlitzFirst Changes

  • Improvement: if more than 20% of the queries are runnable, waiting on CPU power to make progress, we warn you as shown above. sp_BlitzFirst makes two passes through to check - once at the beginning of the sample defined with @Seconds (defaults to 5), and again at the end. (#2776, thanks Erik Darling.)
  • Fix: if you passed in @OutputTableRetentionDays because you wanted to store more or less history in the output tables, that change wasn't being passed to sp_BlitzWho, which was still just storing 3 days. (#2758, thanks Emanuele Mezzo.)
  • Fix: the high compilations/sec and recompilations/sec warnings had way too high of thresholds. They were looking for 1,000 batch requests per sec, but you can see high CPU usage due to compilations with even just 10 big ugly plans per second getting generated. Lowered the threshold to either 10 compilations/sec, or more compilations than batch requests per second - which happens when a proc has multiple statements with recompile hints in them. (#2770)

sp_BlitzIndex Changes

  • Improvement: duplicate indexes are now sorted by row count descending so that the big bang-for-the-buck stuff comes first. (#2762, thanks Todd Chittenden.)
  • Improvement: Aggressive Indexes warnings are now sorted by total lock wait time descending. (#2768)
  • Fix: a few releases back, I added support for SQL Server 2019's new missing index DMV that tells you which queries are triggering the request. I had some challenges getting it to work reliably, and Microsoft just now documented it so I'm removing support for it temporarily. It'll be back. If you want to help with coding for it, check out #2185. (#2780)

sp_AllNightLog Changes

  • Fix: the RPO and RTO now honor overrides set in the config table. (#2775, thanks Alin Selicean.)

sp_ineachdb Changes

  • Improvement: Azure SQL DB compatibility in the sense that it'll run on Azure SQL DB, but it can't actually change databases since Azure SQL DB doesn't allow that. I'm referring to Azure SQL DB "Classic Flavor" here, not Managed Instances. (#2790)

For Support

When you have questions about how the tools work, talk with the community in the #FirstResponderKit Slack channel. If you need a free invite, hit SQLslack.com. Be patient - it's staffed with volunteers who have day jobs.

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.

20210119

3 years ago

You know how a lot of app release notes say "bug fixes and improvements"? We're not gonna lie: this one's all bug fixes. Huge shout out to the community contributors for catching stuff and contributing fixes.

New behavior for SQL Server 2008 & R2 users: sp_BlitzLock has never worked on SQL Server 2008, but starting this month, the installation of sp_BlitzLock simply fails with an error. In this month's release, one of the checkins uses THROW, which isn't available on 2008. This also means that if you use the Install-Core-Blitz-No-Query-Store.sql script to do installations, you're going to get an error. It's okay - all of the other stored procs install successfully. This behavior wasn't intentional by any means, and we'd like that not to happen. If you'd like to improve sp_BlitzLock's installer to bail out gracefully without an error, we'd gladly accept a pull request for that.

To get the new version:

sp_Blitz Changes

  • Fix: standardized the @Help = 1 behavior across this & all of the procs. When you run 'em with @Help = 1, they return the help info and immediately return. (#2717, thanks Todd Chitt.)
  • Fix: offline databases no longer show up in auto-shrink or page verification checks. (#2750, thanks Erik Darling and Ali Hacks.)

sp_BlitzFirst Changes

  • Improvement: if you turn on @Debug = 1, it now raises "Running CheckID #___" messages in the messages tab in SSMS to help you debug. (#2739, thanks Adrian Buckman.)
  • Fix: fix warning typo on queries with max memory grant and clarified that the query's memory grant is a percentage of max workspace. (#2732, thanks Ali Hacks.)
  • Fix: forwarded fetches in table variables now show that it's a table variable rather than a temp table. (#2742)
  • Fix: forwarded fetches in tempdb objects were reporting the cumulative number of fetches since the object was created rather than the forwarded fetches created during the sp_BlitzFirst sample. (#2743)

sp_BlitzIndex Changes

  • Fix: if a missing index recommendation included columns whose names included ampersands, sp_BlitzIndex was failing with an error. (#2734, thanks snckirkmarken.)

sp_BlitzLock Changes

  • Improvement: now runs better without sysadmin or db_owner permissions by wrapping an update statement in a try/catch block. (#2751, thanks Chad Baldwin.)

sp_ineachdb Changes:

  • Fix: case sensitivity bug introduced in last month's version. (#2737, #2744#2747, and #2748, thanks Jefferson Elias and sm8680.)
  • Fix: GO was removed at the end of last month's version, which broke the Install-All-Scripts.sql installer when running on brand-new servers. (#2753, thanks TLSystemsLLC.)

sp_Who Changes

  • Fix: we're supposed to sort queries from longest-running to shortest-running, but last month's version introduced a bug in that. This should fix it. (#2721, thanks Erik Darling and Ali Hacks.)

For Support

When you have questions about how the tools work, talk with the community in the #FirstResponderKit Slack channel. If you need a free invite, hit SQLslack.com. Be patient - it's staffed with volunteers who have day jobs.

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.