First Responder Kit Release: Still Totally Lacking A Servicing Model

A lot of people would think we’re crazy for releasing a FRK update a few days before a new version of SQL Server drops, but we’ve been adding 2017 compatible features for months

Also none of you are on 2017

Most of you won’t live to be on 2017

If you’re lucky, your kids3000 will migrate the last 2008R2 servers to SQL Server 2016

In the year 10,016, when, Double Extra Extended WE MEAN IT THIS TIME Support finally ends

My uploaded AI will be laughing at you

You can download the updated here.

sp_Blitz Improvements

— #1100 Ironic that someone would encrypt backups with a certificate but then not backup their encryption certificate, isn’t it? A bit like copying all your DVDs to VHS and then lending your VCR to a carny.
— #1110 There was a code switcheroo that took out the filtering for regular DBCC CHECKDB calls. @markions told us about it. Brent fixed it. I did absolutely nothing. I chose cozy.
— #1116 I got up off my cozy butt and fixed some typos in system XE session names to filter out. Boy were those stupid typos.

sp_BlitzCache Improvements

— #976 Is Paul White Electric? It’s a question we’ve all asked ourselves about the SQL Mastermind/Intergalactic Celestial Being masquerading as a humble blogging man. If you’ve always wanted a reason to email him but couldn’t think of one, perhaps finding a Switch operator will be your excuse.
— #1129 No matter how much gets written about Implicit Conversion, we still keep finding it. This code extends the analysis of implicit conversions to tell you which variables caused implicit conversion on which column when they effect a Seek Plan. In testing, it works for stored proc parameters and declared variables (procs and adhoc).

While we’re in there, we pull out the compile-time values and give you the exec command used to call the proc, in case you need to test a parameter sniffing scenario.

sp_BlitzFirst Improvements

— #983 Wait stats are categorized the way MS lines them up in sys.query_store_wait_stats. It’s like a wait stats decoder ring that you don’t need to buy 48 boxes of Count Chocula to get.
— #1092 There are 172 kinds of memory pressure in the known universe. We now warn on one more of them: external memory pressure. We try to figure that out by looking at if memory usage is way below max memory.

sp_BlitzIndex Improvements

Nothing this time.

sp_BlitzWho Improvements

— #1089 On pre-2012 versions of SQL Server, it was possible for multiple rows to be returned due to an errant LEFT JOIN clause that was later replaced by an OUTER APPLY. Thanks to @nirst for letting us know about this one!
— #1090 In tempdb usage, we weren’t subtracting deallocated pages from allocated pages. This is dumb. And Fixed.
— #1112 Welcome to the future. Or at least current. SQL Server 2016 introduced the sys.dm_exec_query_statistics_xml DMV. That’s s fancy way of saying we have another way of finding query plans for currently executing queries.

sp_DatabaseRestore Improvements

Nothing this time.

sp_BlitzBackups Improvements

Nothing this time.

sp_BlitzQueryStore Improvements

— #976 and #1129 from above
— #1118 Some stored procs were being flagged as having unparameterized queries when they weren’t.
— #1120 When examining a single stored proc, different runs had costs summed up across executions. Now they don’t. Weird, right? Accuracy. What a concept.
— #1122 Parameter sniffing symptom thresholds were relaxed from 10,000x difference between averages/min/max to 100x difference. This makes more sense. Long term, I’m going to work on making this percentage based. I just have to learn math first.

sp_AllNightLog and sp_AllNightLog_Setup Improvements

— #1005 Databases were left in a questionable state. I thought it was Maryland. I was wrong. It was “not backed up”.
— #1016 It was hard to disable restoring jobs, because we built this thing Ford Tough. It’s still Ford Tough, but it has an override to make it Kia Wimpy if you need to disable stuff.
— #1037 Added support for encrypted backup parameters!

sp_foreachdb Improvements

Nothing this time.

You can download the updated here.

Previous Post
Adaptive Blog Posts
Next Post
[Video] Office Hours 2017/09/27 (With Transcriptions)

7 Comments. Leave new

  • Gopalakrishnan Arthanarisamy
    September 29, 2017 2:50 pm

    Superb – If you’re lucky, your kids3000 will migrate the last 2008R2 servers to SQL Server 2016


  • Eric, disappoting… I’d expect more accuracy/consistency from you, guys…. kids3000 would be a year between some 75000 and 10500.. Year 10,016 on the other hand would only be kids304, (that is if we don’t take into account shifting first birth age 😛 )


  • re: “kids3000”. Actually, no. I’ll be the one doing the migrating. I mentioned the possibility of death to my boss. He replied, “You’re not getting out of it that easily.” (cue evil laughter)

  • I’m using sp_BlitzFirst in a job ( the one that populates tables for the PowerBI) . It’s set up on a SQL 2016 server… Sometimes when it runs it spits out this error? …..
    Attempting to get stored procedure name for individual statements
    Trace flag checks
    Is Paul White Electric?
    Getting information about implicit conversions and stored proc parameters
    Msg 537, Level 16, State 3, Procedure sp_BlitzCache, Line 2719 [Batch Start Line 0]
    Invalid length parameter passed to the LEFT or SUBSTRING function.
    The statement has been terminated.
    Setting configuration values
    Checking for query level SQL Server issues.
    Checking for forced parameterization and cursors.
    Populating Warnings column
    Populating Warnings column for stored procedures
    Checking for plans with >128 levels of nesting
    Checking for plans with no warnings
    Writing results to table.
    sp_BlitzCache Finished

    • This is what runs:
      EXEC sp_BlitzFirst
      @OutputDatabaseName = ‘DBAHQ’,
      @OutputSchemaName = ‘dbo’,
      @OutputTableName = ‘BlitzFirst’,
      @OutputTableNameFileStats = ‘BlitzFirst_FileStats’,
      @OutputTableNamePerfmonStats = ‘BlitzFirst_PerfmonStats’,
      @OutputTableNameWaitStats = ‘BlitzFirst_WaitStats’,
      @OutputTableNameBlitzCache = ‘BlitzCache’;

      • That’ll be fixed in the next release (in a few days).

        Do me a favor though — for issues like this, log them in our GitHub repo. We can’t do support via blog comments.



Leave a Reply

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

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