Happy holidays! Shout out to our contributors this month: @BlitzErik, @RichBenner, @runamuk0, @SQLMonger, and @BrentOzar.

sp_Blitz Improvements

  • #591 - add check for 2016 Standard installed without Service Pack 1 (coded by @RichBenner)
  • #615 - add check for trace flag 834 used in combination with columnstore indexes (coded by @RichBenner)
  • #603 - add check for min server memory = max server memory (suggested by @BlitzErik, coded by @RichBenner)
  • #598 - added checks for non-default database configuration scoped settings in SQL 2016 (suggested by @HenrikStaunPoulsen, coded by @BrentOzar)
  • #593 - added check for Instant File Initialization using new sys.dm_server_services field in SQL 2016 SP1 (suggested by @BlitzErik, coded by @BrentOzar)
  • #592 - added check for Lock Pages in Memory using new sys.dm_os_sys_info field in SQL 2016 SP1 (suggested by @BlitzErik, coded by @BrentOzar)
  • #582 - added check for TempDB file creation error (suggested by @BlitzErik, coded by @BrentOzar)
  • #616 - improved Target Recovery Time warning because some SQL tools set it to 0 and some set it to 60 (suggested by @aclenscorp, coded by @BrentOzar)
  • #619 - fixed case sensitivity bug introduced in another patch (coded by @mikejwhitty, only visible to folks like us who work in the dev branch)

sp_BlitzCache Improvements

  • #617 - add alert for computed columns with scalar operators (coded by @BlitzErik)
  • #626 - add alerts for more kinds of expensive remote queries (coded by @BlitzErik)
  • #228 - skip offline databases (coded by @BlitzErik)

sp_BlitzFirst Improvements

  • #599 - made it more PowerShell-friendly by making all column names unique in the FileStats column output (coded by @runamuk0)

sp_BlitzIndex Improvements

  • #615 - added warning if trace flag 834 is used in combination with columnstore indexes (coded by @RichBenner)
  • #622 - stop counting hypothetical indexes in the total number of indexes on a table (coded by @BlitzErik)
  • #607 - now works in partially contained databases (reported and fixed by @SQLMonger)

sp_BlitzWho Improvements

  • #544 - added database name in the output to show the query's context (coded by @BlitzErik)


2016 Nov 15 - Giving Thanks to @RichBenner and @BlitzErik

@BrentOzar BrentOzar released this Nov 15, 2016 · 73 commits to master since this release

These improvements go great with cranberries. The food, not the b - actually, they go pretty well with the band, too.

sp_Blitz Improvements

sp_BlitzCache Improvements by @BlitzErik

  • #495 - add warning for indexed views with missing stats
  • #557 - bug fix - don't alert on unused memory grants if query is below the server's minimum memory grant
  • #583 - add warning for backwards scans, forced index usage, and forced seeks or scans

sp_BlitzIndex Improvements, Mostly by @BlitzErik

  • #566 - new @SkipStatistics flag enabled by default. This means you only get the stats checks if you ask for it. (We were having some performance problems with it in last month's version.)
  • #567 - bug fix - now adds persisted to a field definition if necessary
  • #571 - bug fix - better checks for computed columns using functions in other schemas
  • #574 - bug fix - long filter definitions over 128 characters broke quotename
  • #578 - bug fix - @RichBenner made sure SQL 2005 users understand that they're unsupported


2016 Oct 23 - sp_BlitzCache, sp_BlitzIndex new checks

@BrentOzar BrentOzar released this Oct 24, 2016 · 97 commits to master since this release

Just when you thought we were done for October, we're turning into ROCKTOBER.

sp_BlitzCache Improvements, All @BlitzErik's Handiwork

  • #543 - look up execution plans for a stored procedure by name, the new @StoredProcedureName parameter
  • #540 - add warnings for recently compiled plans (last 4 hours)
  • #497 - add warning for CLR functions
  • #482 - add check for compute scalar operators that call functions
  • #422 - add check for table variable use
  • #556 - add and improve cursor checks
  • #532 - fix double warnings on expensive remote queries
  • #559 - fix varbinary conversion error

sp_BlitzIndex Improvements, All By The Incredible Non-Edible @BlitzErik

  • #529 - add divide-by-zero handling to stats queries
  • #530 - add more clear wording to stats warnings
  • #479 - add a check for filtered stats
  • #531 - don't get filtered stats on SQL 2005
  • #528 - add schema information to collection and results
  • #527 - faster stats collection with >50k objects
  • #490 - sp_BlitzIndex should be marked to recompile

sp_Blitz, Both @BrentOzar Fixing His Bugs

  • #526 - fixed arithmetic overflow in wait stats checks
  • #546 - refine poison wait for serializable locking


2016 Oct 22 - sp_BlitzCache, sp_BlitzIndex new checks

@BrentOzar BrentOzar released this Oct 22, 2016 · 99 commits to master since this release

(Deprecated due to emergency fix with sp_BlitzCache)


2016 Oct 14 - sp_Blitz markdown output, sp_BlitzIndex statistics checks

@BrentOzar BrentOzar released this Oct 14, 2016 · 131 commits to master since this release

In addition to lots of bug fixes and tweaks, here's the new stuff:

sp_Blitz v53.3:

  • @OutputType = 'markdown' (Brent Ozar) - I'm always looking at StackOverflow.com questions and saying to myself, "Man, if I just had the sp_Blitz output for that server, I bet I could answer this." Makes it way easier for people to get help for free.
  • New check for failover cluster health (Matt Tucker) - warning if you don't have failover cluster nodes available in sys.dm_os_cluster_nodes.
  • New check for endpoints owned by user accounts (HBollah)
  • New check for wait stats cleared since startup (Brent Ozar) - useful in combination with @CheckServerInfo = 1, which includes any wait stats that are bottlenecks.
  • Improved Amazon RDS and SQL Server 2005 compatibility (Brent Ozar)

sp_BlitzFirst v25.2:

  • Split what's running now code into new sp_BlitzWho (Ryan Howard) - several folks said they found this section useful on its own. We'll add more into sp_BlitzWho down the road.

sp_BlitzIndex v4.2:

  • Added statistics checks (Erik Darling) - warning about outdated stats and stats with low sample rates.
  • Added database name to multi-db result sets (Brent Ozar) - notable because it's a breaking change if you'd built anything on top of @GetAllDatabases = 1.


In addition to lots of bug fixes, here's the new stuff:

sp_Blitz v53.2:

  • @OutputServerName writes output to remote server (Haris Khan) - for years, these stored procs have had an @OutputServerName parameter just waiting to be hooked up, and Haris is doin' the hookin'. Now you can push your sp_Blitz results to a central server for easier monitoring! He's doing the same with the rest of the stored procs, too, and we just have to put more work into testing those.
  • New warning for unevenly sized TempDB data files (Brianc-DBA) - we'd always checked for different autogrowth sizes, but shockingly, we weren't looking for unevenly sized files! Great catch, Brian.
  • @CheckServerInfo = 1 now includes Windows restart time (Julie OKC) - it had always included the SQL Server instance restart time, but now you get Windows too.
  • @CheckServerInfo = 1 now checks for Instant File Initialization (Tara Kizer) - starting with SQL Server 2014 SP2 and 2016, Microsoft's logging it in the error log on startup, so we're checkin' for it. We only say yes if it's enabled - we can't say for sure that it's not enabled, since you may have cycled the errorlog since startup.

sp_BlitzCache v3.2:

  • New warning on unused memory grants (Erik Darling) - thanks to new DMV improvements in 2012/2014/2016 that show how much memory queries are granted versus how little they actually use.
  • Add @SortOrder options for 'memory grant' and 'avg memory grant' (Erik Darling) - makes it way easier to troubleshoot queries that get a huge memory grant.

sp_BlitzFirst v25.1:

  • Add waits from sys.dm_os_waiting_tasks to wait stats (Erik Darling) - now, if we've got a long-running query blocking others, the lock waits will go up even though the query hasn't finished. Before, we were only adding up activity from sys.dm_os_wait_stats, which doesn't increment until the wait clears.

sp_BlitzIndex v4.1:

  • Better version number/date formatting (Jorge Solorzano) - making it easier to update new versions of sp_BlitzIndex.
  • New @SkipPartitions parameter (Erik Darling) - for faster processing on databases with large numbers of partitions.
  • Better results when @GetAllDatabases = 1 (Erik Darling) - when you've got lots of problems, you want 'em sorted by priority.


2016 July 15 - Performance Tuning Help

@BrentOzar BrentOzar released this Jul 15, 2016 · 289 commits to master since this release

SQL Server 2012-2016 users are going to find a lot of stuff to love in here:

sp_BlitzCache v3.1:

  • Show cost for stored procedures. #339
  • Warn about trace flags added at the query level, and global trace flags. #361
  • Add warnings about Remote Queries. #315
  • Do not show Forced Plans warning if the real cause is forced parameterization. #343
  • Fix divide-by-zero error if Cost Threshold for Parallelism is 0. #358
  • Fix warning for unparameterized query. #334

sp_BlitzFirst v25 (The Artist Formerly Known as sp_AskBrent):

  • Add new memory grants columns to 2012-2016 live queries output. #362
  • Add SQL login to live queries output. #354
  • Filter Perfmon counter display to skip counters with zeroes. Still logged to table though. #356

sp_Blitz v53.1:

  • Warn about 2016 Query Store cleanup bug in Standard, Evaluation, Express. #352
  • Updating list of supported SQL Server versions. #344
  • Fixing bug in wait stats percentages. #324

sp_BlitzIndex v4.1:

  • Compression information in @Mode = 2. #18
  • Use recently-modified check to improve indexes-not-in-use recommendations. #220
  • Alphabetical sort for @GetAllDatabases = 1, @Mode = 2 output. #351
  • Remove per-day cost filter for missing indexes in @Mode = 4. #338
  • Missing index benefit is now labeled per-day to make it more obvious. #330


2016 June 26th - First Open Source Release

@BrentOzar BrentOzar released this Jun 26, 2016 · 370 commits to master since this release

Woohoo, our first open source release! Tons of changes in here to clean it up before public contributors get started.

These changes affect all of the stored procs:

  • Only support the SQL Server versions that MS supports - sorry, SQL 2005.
  • BREAKING CHANGE: Standardized the input & output parameters to PascalCase. #284
  • BREAKING CHANGE: In output tables, the CheckDate field datatype is now DATETIMEOFFSET. This makes it easier to combine results from multiple servers into one table. This is also one of the big reasons we no longer support SQL 2005, which didn't offer this datatype. (Expect to see a lot more cool stuff coming out of this.) #288
  • Switched to MIT licensing.
  • Switching to semantic versioning. (All of the below are dot-oh releases.)

sp_BlitzFirst v24 (The Artist Formerly Known as sp_AskBrent):

  • Renamed from sp_AskBrent because it doesn't feel right to have that branding on an open source proc. I don't want to claim credit for everything as folks add more improvements.
  • Only show what queries are running now if @ExpertMode = 1. #266
  • Added several ignorable waits. #268 #174

sp_Blitz v53 recent changes:

  • SQL 2016 compatibility - ignores a few changes in 2016's defaults.
  • Automatically set @CheckUserDatabaseObjects = 0 if databases have an old compat level that would break in-database checks.
  • Check for snapshot backups freezing IO. #178
  • Reprioritized a bunch of checks so you can use @IgnorePrioritiesAbove = 50 to get a daily snapshot of really urgent stuff.

sp_BlitzCache v3.0 recent changes:

  • Summary output now moved to the second result set instead of the first - makes presentations & explanations easier
  • New output fields in @ExpertMode for more-info, so you can run the stored proc to get additional info about these queries
  • Fixed @IgnoreQueryHashes, which probably never worked, hahaha
  • Bug fixes - #303, #305
  • Erik Darling also added a ton of checks in v2.5.2-3 around expensive sorts, key lookups, remote queries, forced serialization

sp_BlitzIndex v4.0 recent changes:

  • Performance improvements
  • V3 also added a whole bunch of stuff like prioritized results, new summaries rather than alerting you about tiny indexes, so expect to see a lot less data when you use v3 & v4


2016-06-11: Last of the In-House Releases

@BrentOzar BrentOzar released this Jun 7, 2016 · 418 commits to master since this release

The last of the private in-house releases from Brent Ozar Unlimited. Subsequent releases will have better release notes integrated w/Github milestones.

sp_AskBrent v23 2016/04/27
sp_Blitz v52 2016/06/02
sp_BlitzCache v2.5.1 2016/03/15
sp_BlitzIndex v3.0 2016/03/20
sp_BlitzRS v0.92 2014/09/22
sp_BlitzTrace v0.2 2015/01/03