Releases: BrentOzarULTD/SQL-Server-First-Responder-Kit
It's too cold not to do a release
You look just like a snake when you crawl like a worm.
sp_Blitz Improvements
#1310: @CferMN reported quite an odd conversion error! Turns out, division was a better idea than multiplication.
#1341: We we missing the newest version of Windows, and we had a broken link. Thanks to @JaySpatz for letting us know!
#1359: Something we've all wanted for a long time: We now tell you which power plan your server is running. It turns out there are three major ones that have been around since like, forever. If you have a weird custom power plan, let us know! Some manufacturers add their own. We are using xp_regread
to do this, which we think is less intrusive than xp_cmdshell
.
sp_BlitzCache Improvements
There have been quite a few improvements and fixes around the new clickable columns. I do apologize (and take full responsibility for) the bugs. Hopefully this'll be the end of it, but just saying that... Long story short, did you know that QUOTENAME
returns NVARCHAR(258)
? #1322, #1327, #1329, #1365
#1325: We not grab schema along with store proc/function names
#1349: Improve the handling of some warnings that were firing inconsistently when multiple statements were in a batch
#1331: To improve documentation, I added URLs to a bunch of warnings that were missing
#1366 Add tempdb spills (and a new spill/avg spill sort order), 2017 cu3+ only
#1370: Basic collection of new row goal information, 2017 cu3+ only
sp_BlitzFirst Improvements
#1367: Add new CXCONSUMER wait to list of known waits. 2017 cu3+ only (also supposedly coming to 2016 sp2)
sp_BlitzIndex Improvements
#1337: @js0505 was kind enough to add a data compression switch to index create statements
#1344: New check for indexes with a bad read to write ratio. These are indexes that do get used by read queries, but get way more writes.
sp_BlitzWho Improvements
Nothing this time around
sp_DatabaseRestore Improvements
Nothing this time around
sp_BlitzBackups Improvements
Nothing this time around
sp_BlitzQueryStore Improvements
All the same stuff as sp_BlitzCache, except the tempdb spill info, because that wasn't added to query store DMVs.
sp_AllNightLog and sp_AllNightLog_Setup Improvements
Nothing this time around
sp_foreachdb Improvements
Nothing this time around
PowerBI
Nothing this time around
sp_BlitzLock
#1350: @DaleKBurrell let us know about a fix for illegal XML characters! Thanks!
Super Nofriendo
Object reference not set to an instance of an object.
sp_Blitz Improvements
- #1281 We've lowered the priority of Query Store being disabled. It's just not as important as the backups you're not taking and the corruption checks you're not running.
sp_BlitzCache Improvements
- #1253 Due to an unfortunate copy and paste incident, the rolled up warnings about index spools were both looking at the same flag column. That has been fixed. Thanks to @jobbish-sql for letting us know!
- #1256 We've improved the handling of many indexes being modified to be more accurate. Less wrong. Ahem. Thanks to @JimmyParker for reporting this one.
- #1261 Added a new clickable column that presents ALL missing index requests for a query in order of estimated impact. Only fires when a missing index has an impact of > 70%. Beat that, SSMS.
- #1316 More work to tidy up the implicit conversion and compiled value clickable columns.
sp_BlitzFirst Improvements
Nothing this time around
sp_BlitzIndex Improvements
- #1138 The aggressive lock warning was showing the incorrect number of nonclustered indexes
- #1149 Adds an index on
#IndexColumns
that can maybe probably kinda help improvement when this table has a lot of objects in it. Thanks to @SAinCA for letting us know! - #1311 If we report that your Heaps (HEAPs? heaps?) have forwarded records in them, we supply you with the
REBUILD
command to fix them. Now you don't have to go lookup theREBUILD
command to fix them.
sp_BlitzWho Improvements
- #1188 We have pruned the default columns shown! If you want to see all of the columns, you need to use
@ExpertMode = 1
- #1203 There were two columns named
used_memory_kb
from two different tables. We've clarified their origins. Thanks to @hfleitas for letting us know! - #1255 If you're using context info, we'll display that in the aforementioned expert mode. This sounds like expert stuff. Thanks to @eaglejohn81 for the request, and @SQLGumbo for writing the code and tests!
sp_DatabaseRestore Improvements
- #1152 We can now put a database into Standby after doing log restores. Thanks to @James-DBA-Anderson for the idea and code!
- #1242 We now throw and error when credentials to a mapped drive are incorrect.
sp_BlitzBackups Improvements
Nothing this time around
sp_BlitzQueryStore Improvements
All the same stuff as sp_BlitzCache
sp_AllNightLog and sp_AllNightLog_Setup Improvements
- #1242 We also try to catch invalid credentials here
- #1243 Removes a faulty where clause that prevented some backups and restores from being triggered
sp_foreachdb Improvements
- #1318 @amtwo taught this old dog a new trick. It's now AG aware, and won't try to run commands on databases that are online but aren't accepting connections.
PowerBI
- #1257 We were missing some time slices. Now we're not. Thanks to @tcartwright for letting us know and contributing a fix!
- #1236 Now the Power BI Dashboard for DBAs prompts you for the server name & database when you open it.
sp_BlitzLock
We've got a new family member. This will examine the system health or a custom extended event session that captures deadlocks. 2012+ only. Blog posts about usage to follow. For now, head over to the GitHub documentation.
No one believes me when I say I'm not hungry
This is a cleanup release to get some of the pull requests in that didn't make it in before the precon.
There's also a secret unlockable character that Brent is blogging about this week!
Please clap.
sp_Blitz Improvements
- #1199 We've updated the unsupported builds list! Now you can numerically gauge how bad you are at patching SQL Server. Thanks to @tony1973 for letting us know about this. Apparently he's really good at patching SQL Server!
- #1205 We now guarantee a total lack of duplicate Check IDs. Can a primate get a primary key, here? Thanks to @david-potts for letting us know about this one.
- #1207 If you have read only databases on your server, we'll no longer gripe about a lack of DBCC CHECKDB. Thanks to @Gavin83 for coding this one!
sp_BlitzCache Improvements
- #1230 Oh, that missing parameter in the dynamic SQL. Thanks to @GrzegorzOpara for letting us know!
sp_BlitzFirst Improvements
- #1232 No one likes retaining things. Actually, people like retaining everything other than water. Which is weird, since HYDRATION IS IMPORTANT! I'm not a doctor, but this new parameter is a good way to purge old perf data. Put your data on a diet.
sp_BlitzIndex Improvements
Nothing this time around
sp_BlitzWho Improvements
Nothing this time.
Next time around, we're going to be pruning the default list of columns that it returns, and adding an @ExpertMode
that returns all of them. If you have opinions, now's the time to let us know.
sp_DatabaseRestore Improvements
@ShawnCrocker did a bang up job adding and fixing a bunch of stuff, as only someone who actually needs to restore databases all the time can do!
- #1198 The
@StopAt
parameter was being ignored for Full and Diffs -- no more! - #1192 There was a dependency bug when moving files was blank. Now we look for the default instance path.
- #1180 You can now change the recovery model of a database after restoring it!
sp_BlitzBackups Improvements
Nothing this time.
sp_BlitzQueryStore Improvements
Nothing this time.
sp_AllNightLog and sp_AllNightLog_Setup Improvements
- #1133 Skips over attempting to restore system databases, because what kind of maniac would want that to happen? Thanks to @dalehirt for this one!
sp_foreachdb Improvements
Nothing this time.
A plastic doll with a fresh coat of paint
This release comes to you from a hotel room in Chicago: The land of fiscal insolvency and one shooting per hour.
It's pretty nice, otherwise.
This release is to get the pre-precon important stuff in. As much as I'd like to push all the recent contributions through, between travel, speaking, and uh... what do the rock and roll stars call it? Exhaustion? We just don't have the bandwidth to test everything this time around. I promise they'll make it into the next release, when I have sleep and dual monitors and brain cells again.
sp_Blitz Improvements
Nothing this time. It took me 30 minutes to verify this, because it's so weird.
sp_BlitzCache Improvements
- #1099 We try to make things easy for you. That's why we make tools like Paste The Plan, and well, sp_BlitzCache. It's also why we answer questions for free on dba.stackexchange.com, along with a whole bunch of other smart folks. To make sure you're aware of this stuff, I added a line to the rolled up warnings on how to get more help with a plan you're stuck on.
- #1140 A DEBUG MODE UNLIKE NO OTHER! Okay, just like every other. This'll print out dynamic SQL, and run selects on all the temp table used in the proc. As part of this process, I moved (nearly) all the
SELECT INTO
code toINSERT SELECT
, complete with drop/create statements on the temp tables. - #1141 For the first time, I think ever, we've removed something. A while back when I was merging stuff from our old private GitHub repo to our new public GitHub repo, I thought these looked like a good idea. They never once fired, and on servers with weird plan cache stuff going on, they sometimes ran for quite a while. Out they go.
- #1146 We asked, and we listened. The query plan column is now moved way closer to the left in the result set. Now you don't have to scroll 17 screens over to get there.
- #1159 Refined the implicit conversion analysis queries. They now work much better. V1 of everything stinks.
- #1195 On the line where we give you percentages of plans created in different time spans, we now give you a count of plans in the cache.
- #1143, #1166, #1167 All team up to add some new functionality to our scripts as a whole. These changes make it possible for us to add sp_BlitzCache output tables to sp_BlitzFirst analysis,
sp_BlitzFirst Improvements
- #1106 Those dang time zones, man. Just all the time with the time zones. Zones. Time. Time. Zones. Who can keep track? WE CAN! here's proof.
- #1154 Brent did this for Brenty reasons. He cares deeply about the Delta Views. When they're more than four hours apart, data can look more like Southwestern Views: cheap, unenthusiastic, sober, domestic.
- #1175 Okay, so two things got removed. I don't know what world this is anymore. You can no longer ask a question. No, no, now you can log messages. It has something to do with PowerBI, which means I need to take a nap.
- #1177 We really do try to make things understandable by human beings. Like, normal human beings. Normal human beings don't understand Ring Buffers, but CPU percentages are easy. Hey, Look, we can't all be Jonathan Kehayias. If we could, we could keep talking about Ring Buffers.
- #1200 AGAIN WITH THE TIME ZONES! And again, we prevail like mighty warriors... Okay, so more like a bunch of middle aged doughballs with God awful posture. But still. If you close your eyes, anything is possible. Especially naps. God I want a nap.
- #1144, #1169 These are part of the BlitzCache stuff that make the PowerBI stuff work.
sp_BlitzIndex Improvements
- #1132 When you have a lot of partitions, sometimes things run dog slow. Sometimes you don't know that. Sometimes you don't care. If you have > 100 partitions in the database, we skip partition level details. If you want to get them, you need to use the
@BringThePain
parameter. - #1160 Remember those AG things? We do too. Especially when they make sp_BlitzIndex fail. We skip those databases that aren't in a readable state.
sp_BlitzWho Improvements
Ain't not nothin'. Next time around, we're going to be pruning the default list of columns that it returns, and adding an @ExpertMode
that returns all of them. If you have opinions, now's the time to let us know.
sp_DatabaseRestore Improvements
- #1135 @James-DBA-Anderson (seriously that's his middle name) added a check for permission denied messages from directory listings. Hurrah.
Next time around, the Most Famous Mullet On The Internet® is going to have a whole bunch of cool new tricks added. I'm more excited about these than I am about the stint in rehab I'm going to need after this trip.
sp_BlitzBackups Improvements
Nothing this time.
sp_BlitzQueryStore Improvements
- #1178 The result sorting was stupid. I don't know why I picked Query Cost. Probably that darned exhaustion, again. Now we order by the last execution time. We do this especially because when you're troubleshooting parameter sniffing issues, it helps to know which version of a query executed most recently.
- #1182 We're now way more 2017 compatible. A couple of the new and interesting metrics added to Query Store (tempdb used, log bytes used) are now fully supported in the metrics gathering. Before they were only mildly supported. Like used hosiery.
sp_AllNightLog and sp_AllNightLog_Setup Improvements
Ain't not nothin'!
sp_foreachdb Improvements
Ain't not nothin'!
Screw this, I'm learning C++
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
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.
Yukon Hurl
Did you know there are more issues closed in this FRK than there are planets in this solar system?
Special thanks to Pluto for making that statement possible, and all the other planets that didn't form.
Also thanks to @mches for making the FIRST EVER contribution to sp_foreachdb, and @rabryst for hooking us up with some Linux Love in sp_Blitz.
sp_Blitz Improvements
#1055, #1094 -- you know what's funny about Debug modes? You have to debug them. Thanks to our many eagle-eyed users for letting us know about these!
#1056 -- Did you know that the name Linux comes from the Greek word for "crossed lines"? It's true, and that's why their file system uses "/" instead of "". They got mixed up when Claudius Linuxus devised their file system after getting headbutted by a goat. It's also why @rabryst had to write this code.
#1084 -- Thanks to @GrzegorzOpara and @martin-guth for informing us about even more DBCC events that we can ignore in our checks. DBCC CHECKPANTS
now finishes without error!
#1085 -- We hate when things run slowly as much as you do, that's why we turn off database level checks if you have more than 50 databases on your instance. Before, this was only a printed message behind the scenes. Now there's a whole line in the regular results. We care.
sp_BlitzCache Improvements
#1073 -- We hold ourselves to the lofty goal of documenting all of our inputs. And outputs. Brent keeps a diary. It's cute. He just ends all his entries with "Mrs. DMX". If you've ever wondered about that, or what the purpose of @IgnoreSqlHandles
, now you know.
#1076 -- There was some confusion about what would be in a column if it wasn't a parallel query. Confusion has been abated. Now we can go back to making fun of serial queries together, bug-free.
#1079 -- In the ultimate act of self immolation, the row estimate mismatches would sometimes fire for queries that didn't match. Not, like, totally unrelated ones, but where there were multiple statements in a stored procedure, it would get all... French words.
sp_BlitzFirst Improvements
Nothing this time.
sp_BlitzIndex Improvements
#1068 -- possibly the most ancient bug was uncovered by the part-alien, part-android @wendydroid. I'm assured that's wendy droid, not wendy d. roid, though we're not sure if she's not on steroids after finding that one.
sp_BlitzWho Improvements
Nothing this time.
sp_DatabaseRestore Improvements
Nothing this time.
sp_BlitzBackups Improvements
Nothing this time.
sp_BlitzQueryStore Improvements
Just about the same stuff as sp_BlitzCache
sp_AllNightLog and sp_AllNightLog_Setup Improvements
Nothing this time.
sp_foreachdb Improvements
#1078 -- WOOHOO! All your database name pattern matching dreams have come true. I mean, all the ones you've told us about. Thanks to @mches for being the first person brave enough to crack open Aaron Bertrand's code and have a go at it.
Yukon Ho!
We're going to Alaska this month, so try not to find any bugs, okay?
To celebrate, I'm channeling childhood nostalgia, and quoting a verse from one of my many Taco-Bell-dripping-stained Calvin and Hobbes tomes.
We'll never have to clean a plate,
Of veggie goops and goos
Messily we'll masticate,
Using any fork we choose!
When I was a kid, the word "masticate" was always good for a chuckle.
Until I found a dictionary.
sp_Blitz Improvements
- #962: @RichBenner - the man, the myth, the guy who cares about trace file names. Thanks to him, you'll never have to worry about one being folded, spindled, or mutilated.
- #1008: We added a debug mode. Actually, we added two debug modes. Using
@Debug = 1
will print out CheckIds as they run, and@Debug = 2
will print out CheckIds and dynamic SQL used in some checks. This will help us identify errors and slow-moving queries. You're welcome. - #1023: We noticed that there were some undeclared character lengths, and fixed them. Who cares, right?
- #1029: We'll only give you warnings about CMEMTHREAD when you have multiple NUMA nodes. Spiffy!
- #1041: When we look at DBCC CHECKDB commands that have been run in the default trace, we ignore anything run by common monitoring tools.
- #1042: The only thing worse than knowing fill factor is low is now knowing how low it is. Now you'll know, and you can begin the long march to the bottom of your Desk Whiskey® bottle.
- #1043: Endpoints; ah, Endpoints. Those verdant fields. It's fine if
sa
owns them. Now you'll know that too. - #1049: The memory dumps check was missing a
BEGIN
andEND
. Using advanced control-flow technology, we can now avoid running syntax when our Super Cool Consultant Criteria® isn't met.
sp_BlitzCache Improvements
- #1030: We'll give you a holler if there's a high variation between the estimated rows estimated to come out of a query's
SELECT
operator, and how many rows are returned on average by a query. This is v1, so if you run into anything weird, please let us know!
sp_BlitzFirst Improvements
- Nothing this time around
sp_BlitzIndex Improvements
- Nothing this time around
sp_BlitzWho Improvements
- #1017: Not all blocking would be flagged. Sometimes none of it would be. The whole thing stunk! Stunk! Like the way those zit popping videos probably smell.
- #1031: DMVs are awful. Has anyone else noticed that? One day you're cruising along with a positive elapsed time, the next day SQL Server decides you're a negative number. Yeah. Cool. Thanks, SQL Server.
sp_DatabaseRestore Improvements
- Nothing this time around
sp_BlitzBackups
- #977: In the humble words of @TheUsernameSelectionSucks "this is broken". Now it's fixed, with the healing powers of
QUOTENAME
. It turns out that thing you only ever used in dynamic SQL is good for other things, too. - #1039: Moving files broke really easily, and didn't take into account if you were restoring a database with a different name. Now it breaks far less easily, and takes name changes into consideration.
sp_BlitzQueryStore
- #908: Added filtering for
plan_id
andquery_id
. Why? Because I needed it for 24HOP. - #1030: Same row variation item that got added to
sp_BlitzCache
- #1034: Future-proofing for SQL Server 2017. Some new columns got added with query metrics in them.
sp_AllNightLog and sp_AllNightLog_Setup
There were like 10 changes here, and I'm far too hungry to write something funny for all of them. If you're interested, here's the full list of issues in this release.
Installer Scripts
Two turned into three! Yes, three! There are now two installers for the core Blitz scripts. One has sp_BlitzQueryStore
in it, and the other doesn't. The installer for all scripts includes everything. I'm not making a special one that doesn't have sp_BlitzQueryStore
in it for that one.
Deprecated
sp_BlitzRS
and sp_BlitzTrace
are no longer under active development. Whatever version of them you have is the final version. It would take a really, really impressive code change to get us to take them out of retirement. If you want them, you can still find them here.
Johnny's always running around trying to find certainty
ONE TWO THREE FOUR FIVE SIX SEVEN WHO DO WE APPRECIATE?
No one.
Appreciate doesn't rhyme with seven.
Special thanks to @JohnKNess, @jsetliffe, @rabryst, @gdoddsy and @SOlsonFAC for various levels of contribution. I've made a $10,000 donation in each of your names to the Erik Darling Home For Little Wanderers. Very thoughtful of me.
sp_Blitz Improvements
- #878 The Irascible Mr. @JohnKNess fixed some things so maintenance plans and jobs that shrink things and are enabled have a higher priority than jobs that are disabled, taking into account last runtime. Pretty cool! Now we can all point and laugh at your shrinkage.
sp_BlitzCache Improvements
- #968 Adds detection and warning for Index Spools. Only the Eager kind. Why? Paul White said so. Fun fact: He was in a band called The Lazy Spools in high school. I had the XQuery written to add the check for Eagerness, but then my XML Dad Mikael Eriksson suggested an alternative. So I went with it just because. Special thanks to #SQLNEWBLOGGER Joe Obbish for suggesting reasonable thresholds, here.
sp_BlitzFirst Improvements
- #928 PLE may go up, and it may go down. We were only looking for one of those directions. Now we're looking in both of those directions. Thanks to @TaraKizer for pointing that out!
sp_BlitzIndex Improvements
- #937 If you restarted your server a year ago and created a table a month ago, missing index requests for it may be terribly underrepresented. Like me at AA meetings. Now we take table creation date into account when determining missing index benefit.
sp_BlitzWho Improvements
- #895 Adds session level wait stats for 2016+ using
sys.dm_exec_session_wait_stats
to grab the top 3 waits with >5ms time accumulated. - #942 Adds a
@Debug
option to print out dynamic SQL. Helpful if you're me. - #926 Adds tempdb allocations! So you can see how horrible that is now, too.
- #921 Adds Resource Governor information, for both of you crazy kids out there using Resource Governor. Thanks to @djlaney3 for the idea and code submission!
sp_DatabaseRestore Improvements
- This underwent a bit of reconstructive surgery to bring it inline with our 'coding standards' (read: I had to look busy one day, so I rearranged a bunch of stuff and made sure all our strings were Unicode). No behavior was harmed during this change.
sp_BlitzBackups
- #906 Fixes an issue with dynamic SQL around the encrypted backup check. Thanks to @jsetliffe
- #909 Clarified language around backup compression and supported versions. Thanks to @rabryst for showing us the error of our loose-tongued ways.
- #911 Corrects math to determine if Diffs are big or not. Thanks to @gdoddsy and @SOlsonFAC for teaching me math.
sp_BlitzQueryStore
- #934 Fixes some weirdness when attempting to search for a specific stored procedure by name
- #933 We are compatible with Azure! At least according to @dcurlewis. I don't have Azure, so I can't check. He seems trustworthy, though.
- #968 Same as sp_BlitzCache
sp_AllNightLog and sp_AllNightLog_Setup
- These are new! They're part of our FauxPaaS to do our own version of Log Shipping. Since these are net-new, check out the documentation and other posts about them to learn more. I could go on for a month, here.
Install_Core_Blitz and Install-All-Procs
- We're trying something new! Because we hate opening multiple .sql files as much as you do (because why in the blue ox would SSMS decide to spawn a new window FOR EVERY SINGLE SCRIPT YOU OPEN??), we made it easy. Now you can just open one big script. We use a couple simple
copy
commands to do this:copy /b /y sp_Blitz*.sql Install_Core_Blitz.sql
andcopy /b /y *.sql Install-All-Procs.sql
, which you can use and modify to create your own version, omitting whatever scripts you don't want. Lucky you!
This heat has got right out of hand
So many things happen in mid-Summer. Dreams. Death. Pit stains.
And FRK updates!
Special thanks to @digitalohm for once again taking the axe to sp_DatabaseRestore. You are the only person on our email list who isn't getting a Box O' Tripe®
sp_Blitz Improvements
- #872 @MosesOfJ pointed out that, while our code is flawless, our spelling was not. Thanks, Mo.
- #877 Dear sir Moses also pointed out that our code is not flawless, but our spelling was! Hey, we're... 50/50. Kinda. What's math got to do with code, anyway? Now SkipChecks work NVARCHAR(4000)% better.
sp_BlitzCache Improvements
- #889 Added pre-2017 future-proofing to pull information about statistics and adaptive joins out of XML
- #890 Things were formatted. No one got drooled on. Quite the day.
sp_BlitzFirst Improvements
- #879 After a weird situation (blame @TaraKizer ), we decided to stop ignoring CLR waits. Boy oh boy.
sp_BlitzIndex Improvements
- Nothing this go around. We try not to mess with perfection.
sp_BlitzWho Improvements
- Has attained a zen-like state and did not receive any chakra filth.
sp_DatabaseRestore Improvements
- #871 Here we stand athwart log restores yelling STOPAT! So, you know, if you want to stop at a certain time within a log restore, you can do that now. This was all @digitalohm, whose mailbox will not smell like the worst hangover ever.
sp_BlitzBackups
- Initial release! There were many PRs and fixes in the dev branch leading up to this that aren't really pertinent historically, because it has no history. Literally none. This is a newborn. Give it a spankin.
sp_BlitzQueryStore
- MAZEL TOV! It's another new stored procedure. Requires 2016, and an enabled query store. Details will be forthcoming in a blog post this week, but you can get it now and feel the hot rush of blood that accompanies hitting F5 and finding out how horrible things truly are.
It was all a dream, I used to read Wizard magazine
Every April I think about this girl I grew up with named April who smelled like Cheez-Wiz.
She died tragically in a home for the blind on Taco Tuesday.
Special thanks to @jeffrosenberg , @mrthomsmith , @rwhoward for contributing this month. Your complimentary oxygen is now available.
sp_Blitz Improvements
- #762 This big dummy would crash on certain versions of 2008R2 when checking for memory dumps, ironically causing a memory dump. So hey, there's that. Now we don't do that for those versions. You're welcome.
- #824 Some files are bigger than others, and some sizes do matter. For instance, we only care if your tempdb files are more than 1 GB apart in size. Now you know, and knowing is half the burden,
sp_BlitzCache Improvements
- #770 We now warn you if you use a Spatial index, since that probably means you accidentally created some Spatial data in SQL Server. I mean, who does that?
- #796 sp_BlitzCache will now warn you if your code creates or drops tables and indexes while running. Yeah, who knew?
- #801 We do our best to bubble up information from statements in stored procedures to their calling code. Because that's the right thing to do. Why should those lazy statements get all the attention? They're not special. Now we do that with memory grants, where available.
- #808 Code is weird. Code that calls other code is weirder. Code that gets blocked is double weird, like a trailer full of twin sized mattresses. We now warn you if low cost queries have high CPU, or if long running queries have low CPU. Surely those are signs of trouble.
- #816 Ah, zero. Is there anything you can't do? Oh, be divided by. Yeah. Let's not do that.
sp_BlitzFirst Improvements
- #819 Biggie Smalls for mayor, the rap slayer, Hekaton say your prayers. Also get notified if any activity is happening by BlitzFirst.
- #823 Funny story: no one ever found this error, because no one ever ran sp_BlitzFirst when they had a query being blocked for more than 30 seconds, which are EXACTLY THE KIND OF PEOPLE WHO SHOULD BE RUNNING sp_BlitzFirst, especially since this bug is fixed.
sp_BlitzIndex Improvements
- #772 Mode 2 is now capable of being output to a remote server. Not available for other modes, or Depeche Mode.
- #777 Cleanliness is next to Godliness, so I cleaned up this code to find your blasphemous computed columns based on scalar functions so you may be doomed for all eternity.
- #778 Unused indexes are, like, a bummer, man. But they're a bigger bummer when they have a lot of writes. Thanks to @amtwo for the totally badical suggestion. Air guitar and whatnot.
- #779 I keep hearing about this SQL Server 2016 thing. I hope someday someone uses it, so they can use temporal tables, and marvel at the information that so_BlitzIndex provides them.
sp_BlitzWho Improvements
- #822 Sleeping transactions can violate the NAP by blocking other queries with their snoring so we can call our gold level sp_BlitzWho to arrest them. or just find them. Why weren't we going this before? That was silly.
sp_DatabaseRestore Improvements
- #765 We have the most elegant, luxurious storage for our LSNs. Really. Ask anyone. They're NUMERIC(25,0).
- #766 Similarly, we have the most elegant and luxurious storage for our file paths: NVARCHAR(MAX).
- #775 Being compatible is important. Being backwards compatible means you have more bugs to fix. But hey, now you can find bugs if you're on 2008 or later.
These were all done by @jeffrosenberg! A threefer! - #787 It's not a stored procedure unless it starts with sp_ -- thanks @mrthomsmith !