In Memoriam: Robert L. Davis – @SQLSoldier

No one’s life works out exactly as they want it to – or goes exactly as planned.

We all have our struggles, challenges, triumphs, and sorrows – our good days, and our bad.

Which is why, in the end, the thing that matters most is how you live your life – what you do with the time you’re given; how you fill your day.

Day in and day out – through the thick and thin of Robert’s Life he could ALWAYS be found genuinely helping people.


Not only am I grateful and lucky to count Robert as a friend, but I’m truly a better person for having known him.

His steady example of kindness, help, and service to others is something I cherish and strive to honor by living my life in service to others – as Robert did.

To me, the world just isn’t the same without Robert – I miss you man.

And I’ll see you on the other side.

Why SQL Server Users Commonly Hate Connect

SQL Server isn’t cheap. Licensing costs alone for a simple 4-core VM running SQL Server Standard Edition (and the Software Assurance required to make those licenses worthwhile) will typically cost around $10,000 to license for 2 years – while Enterprise Edition Licenses for the same VM would weigh in at closer to $40,000 for those same two years.

Against such a backdrop, when users post detailed information about bugs, problems, or issues – only to have their reports dismissed with “Closed – as Won’t Fix”, it’s not hard to see why so many SQL Server users end up hating connect. To them, Connect is (at worst) either an affront to the amount of money they’ve invested in SQL Server as a product or (at best) simply a quagmire: a place where bug reports and feedback enters only to become aimlessly lost, overlooked for years to come,  and possibly never see the light of day again.

And, I get it: In order for SQL Server to remain competitive, Microsoft has to keep their limited pool of developers (there’s a real talent shortage in terms of the skill-sets needed to work on something as complex as SQL Server’s internals) focused on tight deadlines if new features and and capabilities are ever going to ship – meaning that Microsoft sometimes has to take a hard-line when it comes to bona-fide bugs.

But, ultimately, there’s still a perception that Microsoft simply doesn’t care or can’t be bothered – in far too many cases.

One Thing Microsoft Could and Should Do to Help with this Problem

One thing Microsoft really needs to do, is go BACK and re-evaluate previously closed bug reports.

For example, consider this report – covering a problem with reviewing data from Extended Event Sessions. Originally filed against SQL Server 2014, the issues was closed as not reproducible. Fair enough – sometimes trying to reproduce bugs is hideously difficult – especially when there might not be enough detail or context in the first ‘repro’ sent in with a given bug. But, all these years later, the bug still exists (even against SQL Server 2016) and the bug continues to be “Closed” or ignored – whereas there IS a simple explanation for what’s going on and IF Microsoft were to review closed bugs, you’d assume they’d re-evaluate this one, see what’s going on, and FIX the problem.

May you live in interesting times…

May you live in interesting times” is an English expression purported to be a translation of a traditional Chinese curse.


Doing some quick math here:

One of these is CLEARLY not like the others – and, in fact, were it not for that specific thing (and the entire climate leading up to that disaster + everything that’ll follow thereafter), I’d say that living in interesting times was hardly a curse…

Windows 10 Updates and Blockbuster

Blockbuster treated its customers with contempt, so it was only natural that we all bolted as soon as any other options came our way.

Unfortunately, it sometimes feels like some of Blockbuster’s corporate leadership ended up working at Microsoft on the Windows 10 Update Team – where they’re driving a corporate culture of treating Windows 10 customers with contempt.

First, there’s the way Windows 10 Home users are treated in terms of how little control they have over how updates are installed.

But even Windows 10 Pro users get crapped on as well – as they’re gradually trained to schedule or execute reboots for minor security fixes or patches, only to find that one day, when they go for a ‘quick reboot’, they’re stuck for 20 – 60 minutes (depending upon hardware) while Windows 10 reinstalls itself from scratch with absolutely NO WARNING at all.

If that’s isn’t a big ‘screw-you’ from Microsoft I really don’t know what is. It assumes that Windows 10 users might never need to shut-down right before heading to an important meeting (or presentation) or zip off to the airport (or maybe even just have lost power during a storm) – and it assumes that a long and scary re-install is exactly what customers need – without giving them a single heads-up.

Even if you try to take a cautious approach and review what might be pending as part of a reboot, it’s not like you’ll get the feeling that Microsoft really gives a crap about letting you know what might be getting pushed. Here, for example, are the exact details captured on my box before a ‘reboot’ was required to push a 25 minute update on me to roll-out Windows 10 Anniversary Edition (Build 14393) – where there are NO details provided what so ever.



Thanks Microsoft.

And you’ll forgive me if some aspects of working with you bring back memories of what it was like to be treated by Blockbuster.

The Hipster Manifesto

I’ve read this definition of Hipster on Urban Dictionary a number of times now.

And, for the life of me, I can’t tell if it was written 100% in earnest by a self-professed hipster trying to ‘codify’ what it means to, ironically, be a non-conformist – or if this was written by one of the most brilliant satirists of our time.

Either way, I’ve had a few belly-laughs while reading this definition in the past – and thought I’d share.

The Selkirk Crest from Myrtle Peak


Late this summer I embarked on a ‘Solo’ backpacking trip through the Selkirks. The plan was to start up Myrtle Peak, bush-wack my way over to Ball/Pyramid Lakes, then hike over and up to Trout and Big Fisher Lakes, back round again past Long Mountain Lake and then out through Parker Ridge.

That was the plan – and the expectation was that I’d be tackling about 40 miles in roughly 2.5 days – where around 10 of those miles would be bush-wacking (i.e., off-trail and on my own). The hike ended up being spectacular – even though some foul weather pushed me into a contingency plan that cut off about 10 miles out of my trip (more on that in subsequent posts).

The View from Myrtle Peak is Spectacular

Today, though, I just wanted to share what’s been my desktop background for the last 2 or 3 days – the view from Myrtle Peak (and by using an iOS Panorama, this view captures what you’d see looking south, west, and north).

There’s more granite and beauty in this shot than I can cover in a single 3 to 9 sentence post. Crack it open, and take a look. It’s not a great photo by any stretch – but the landscape it captures is just plain gorgeous.

SQL Server Standard Edition Memory Limits – A Better Way?

With SQL Server 2012, Microsoft changed how SQL Server was licensed – by making customers pay per core instead of per socket. While this caused grumbling among SQL Server professionals and customers, I’ve always seen it as a MOSTLY fair move on Microsoft’s part – as their goal with licensing SQL Server has always been to charge customers based upon the amount of compute being handled by SQL Server.

Where this change feels a bit less than fair, though, is when it comes to the artificial limitations put into place against SQL Server’s Standard Edition’s use of RAM (SQL Server 2012 Standard Edition was limited to an absurd 64GB of RAM, whereas SQL Server 2016 and 2016 Standard Editions are limited to a still paltry 128GB of RAM).

Stated differently, I think it’s fair for Microsoft to charge customers per core – but not if they’re going to heavily curtail how much compute you can do with this core by severely limiting the amount of RAM you can allocated per core. (Standard Edition Licenses weigh in at around $2,800 per core – but if you’ve dropped $45K for a 16 core 2014 Standard Edition box, you’re limited to a paltry 8GB of RAM per core – whereas a 2016 instance with 24 cores would cost $65,000 yet top out at a miserly 5.33GB/core of RAM – or less RAM per core (for a higher overall price).)

A Better Way?

Yes, there are ways around this limitation (like using Buffer Pool Extensions (available on Standard Edition) or even potentially spinning up multiple instances per OSE – as the 128GB RAM limitation is per instance NOT per host), and Enterprise Edition really isn’t that expensive when you compare it to Oracle or even when you think about how much it will DO for you in a given year (and compare how much it costs per year to, say, what you’d pay 2 or 3 employees per year).

Still, I think there might be a better way: Enable up to 32GB of RAM per each 2-core Standard Edition ‘pack’ licensed. With this approach, a simple 4-core VM could pull off up to 64GB of RAM, a ‘decent’ Standard Edition instance with 8 cores could pull off up to 128GB of RAM (the max currently in place today) and a higher-end 2016 box with 24 cores (i.e., 12x 2-core packs) could top out at 384GB of RAM.

Arguably, this approach would add a tiny bit of additional complexity into the licensing landscape (and orgs running 4-core boxes today with 128GB of RAM would obviously find fault with my ‘logic’), but I’d wager that medium to large Standard Edition instances would benefit tremendously – to the point I’d even guess that Microsoft Support Services would probably field a slightly smaller number of support calls for performance related issues simply because of the extra benefits additional RAM can provide to SQL Server workloads.

Enchantments – 2016

This summer, my brother (Jed), his son (Aaron), and my oldest son (Caleb), and I decided to do a hike-through tour of the Enchantments – which Wikipedia describes thusly:

The Enchantments is regarded as one of the most spectacular locations in the Cascade Range.

In my estimation, Wikipedia is underplaying The Enchantments quite a bit.

A Grueling Hike – But Well Worth It

It’s easy to get to and even hike into the Enchantments – but permits to camp are allocated on a lottery basis every year. And, since we didn’t have a permit, we decided to do the entire 22 mile hike in a single day – which is a bit of a beast when you count in the 4500+ feet of elevation you’ll pick up during some parts of this hike.

Here’s what the hike looked like from my Fitbit’s perspective (note the number of stairs it estimated – thanks to the huge ascent we took up Aasgard Pass):


More Triple4KBackgrounds

Otherwise, I’ve uploaded just a couple of the gorgeous Panoramas I was able to take on this trip – in case anyone wants them as #triple4kbackgrounds:

Colchuck Lake – Looking towards Aasgard Pass (which is just to the left of that massive block of granite right in the center of this pic).

Some ‘watermelon’ snow in the upper Enchantments (with little Annapurna left-of-center in the background).

The back-side of Dragontail Peak (with the summit of Aasgard Pass right in the center of the image).

SQL Sentry’s Plan Explorer PRO – Now Completely Free

Wow, that’s very impressive – and a huge win for SQL Server Professionals everywhere.


SQL Sentry just announced that the PRO version of Plan Explorer is now completely free – as in you don’t even have to register to use it. (For those in the know, there used to be two versions: a ‘lighter-weight’ free version, and a paid-for PRO version; they’ve now consolidated all features into the PRO version – and made it free.)

Spoil Yourself with Better Insight and Analysis

I’ll be honest: since I spend so much of my time on my clients’ machines when analyzing performance problems and looking at execution plans, I’ve made a conscious effort in the past to avoid using Plan Explorer too much in my Lab – for fear of spoiling myself.

This announcement changes all of that – meaning that I’ll have a whole suite of additional tools at my disposal when performance tuning or troubleshooting.

SQL Sentry’s Motivation

It doesn’t take a genius to see that SQL Sentry is trying to use Plan Explorer PRO to establish a ‘foot in the door’ with as many potential customers and clients as possible.

But a maneuver like this only works with a market when you’re providing something that users REALLY want, management can easily see the value being offered, and the tool being offered is really solid (non-buggy).

Interestingly enough, that sums up Plan Explorer PRO perfectly.

One of My Favorite Undocumented T-SQL Snippets

While there are tons of undocumented T-SQL commands out there, one of my all-time favorites is this little gem:


It’s not much, but it will show you default details on:


 Arguably, there are better ways to retrieve some of this information (like SELECT * FROM sys.dm_server_registry;).

But SERVERPROPERTY(‘ErrorLogFileName’) works just fine when looking for low-level details.

The only real problem I have with this particular snippet of T-SQL is that I can never remember EXACTLY what the property is to ‘search’ for (i.e., ‘ErrorLogFileName’) – which is part of why I’ve blogged about it (so that I’ll be able to more easily find this snippet in the future).