PASS Summit 2017

Last week I was back in Seattle – I love that city! – for the PASS Summit. I’ve only been to two PASS Summit’s and at the first one, I begged Microsoft to hire me as a full-time employee. Imagine my shock when they did!

This time, I am shocked for a different reason. SQL Server 2017.

There is just so much awesome-sauce packed into this release; it is a challenge to know where to begin. A new release cycle is a good beginning. Microsoft has been on a two-year-major-release cycle for a long time now. It stretches back to SQL Server 2008 R2 in 2010. Now Service Packs are going away and Cumulative Updates will be monthly. I suspect we’ll see more aggressive major releases too.

Many people are salivating that SQL Server will run on Linux now. I already stated that I am thrilled to see the best database engine on the planet start eating Oracle’s lunch. But speaking professionally, this doesn’t blow my skirt up – I am a Windows man through and through.

Two of the most exciting advances involve Adaptive Query Processing. Now a compiled execution plan can have multiple paths that change dynamically at runtime. A join could be handled by a nested loop or a hash match depending on the number of rows being processed. Memory grants that are too large or too small can also change between executions. Both of these do not require recompiling the execution plan. This is incredible.

Availability Groups can now be built without a Windows Failover Cluster. This removes the high availability feature but it allows for a hot copy of data. Reporting queries can use the copy and take pressure away from the primary replica.

Columnstore Indexes, Query Store and In-Memory OLTP keep getting better. Smaller existing features and knobs are tweaked as well. SQL Server 2017 has me really excited.

Last, but not least, I was able to meet-up with former Microsoft colleagues. Adam, Rohit, Bob, Ajay and Tejas – it was great to see all of you again.

Seattle & The PASS Conference

Later today, I’ll be headed out to Seattle, Washington – courtesy of my employer. I’ve been to Seattle several times and once seriously considered moving there.

This trip is something of a full-circle for me, one of my first visits to the Emerald City was to attend the PASS Conference. I paid for the conference out of my own pocket and I think that was a major influence to Microsoft hiring me full-time rather than remain a contractor in Mississauga. That – in turn – led to me moving to Texas for nearly eight years.

Now I am returning to the Pacific Northwest for PASS 2017.

Much has changed with SQL Server since I began my career. SQL Server 2000 was the version where the industry started to take serious notice of the product. It has only grown since then. The release of SQL Server 2017 earlier this month is opening up the Linux market.

I am excited to see my favourite database eat more of Oracle’s lunch!

That Didn’t Take Long…

Alas this Friday will be my final day at D+H already. Unfortunately, the job was not a good fit and I did not want to be unfair to them or to myself. I sensed the mistake of my decision within the first week but really focused on all aspects to be sure it wasn’t just new job jitters.

Ultimately, the work was too junior-level. This would be great for someone starting a career in SQL Server. The developmental goals that I set for myself won’t happen at D+H. It is not right that I end up taking sick days to attend other interviews – I hate that.

So it is back to the search! And it is back to continuing learning with my PluralSight subscription.

Adios Avanade!

Well it has been an interesting and decidedly bumpy ride. Earlier today, I stopped working for Avanade Managed Services (or UCCMS – or whatever fucking acronym they’ll call it next week). I gave an entire month’s notice because I wanted the extra paycheque.

A little over three years ago, my chummer (and former colleague) B. helped me join Azaleos. I was about to get hit by a bus during performance review on the Microsoft SharePoint PSS team. Joining Azaleos was how I dodged that bullet.

Azaleos was a small but growing company that provided managed services for Microsoft technologies. Since they had expanded into SharePoint and Lync, they needed a SQL Server expert. So for a time, I was a big fish in a medium pond. I developed a ton of training videos and gave lots of live talks and demonstrations – I loved that part of the job.

Avanade – a giant British consulting company created by Microsoft and Accenture – bought Azaleos. Cue the drums of doom… But there was some really good people in Azaleos and we all worked well together. However; between Accenture and Avanade, things deteriorated. They wanted bigger contracts and allowed the smaller contracts from Azaleos atrophy.

People began leaving but the management chain refused to pay attention. That only accelerated the attrition rate. When B. told me that he was leaving, I knew it had gone too far. The writing was on the wall. As it turned out, two other major gurus also announced their departure. With my own announcement, that made four subject matter experts leaving in as many weeks.

Management noticed then. But it was far too late. They’re screwed and more people have left since and more are still planning to leave. Avanade has made their bed and now they have to lay in it.

I’ll end this now. There is no need to turn this into a 20,000 word bitch-fest. I hope that the good people still there can escape as well. They deserve far better than Avanade.

Saying Good-bye To Microsoft

Next Tuesday, the 28th, will be my final day as a “blue badge” employee of Microsoft. Although it would have been nice to stick around until May and have my 5th anniversary; an exciting new opportunity has presented itself.

I owe a great debt of thanks to every Escalation Engineer in Developer Support Database. I learned at least one thing from each of them. My deepest appreciation is extended to Bob Ward, Bob Dorr, Keith Elmore, Suresh Kandoth and Joseph Pilov for the triages, tools, training and mentoring that they provided. You can also learn from “The Bobs” and Suresh (and others) from the CSS SQL Server Engineers blog.

Starting in March, I will begin working for Azaleos. This will ultimately mean moving from Texas to Washington; which is great, because I love the Pacific Northwest.

My experience with both SQL Server and SharePoint will help Azaleos customers ensure that the correct hardware and configuration choices are made. I’ll also be helping solve some of the occasionally nasty performance problems that can arise in SQL Server when hosting SharePoint databases.

This is going to be an exciting change. I’m looking forward to the challenge.

SharePoint and SQL Server’s Error 8628

This morning I posted my first blog post on the SharePoint Escalation Team MSDN blog.

This explains the reason behind SQL Server’s query compile timeout error and how SharePoint can cause it to happen. I include some DMV queries that you can use to see if you are at risk for hitting this error.

If you have further questions about this problem, please contact me at and I will advise you on the best course of action. You’ll likely need to open a support case if your question involves deep troubleshooting.

The Curse Of The Windows Installer Cache

In my opinion, one of the worst things ever to come out of Microsoft is the Windows Installer Cache. Actually, I shouldn’t be that harsh. There is a worse thing that is behind the problems with the Installer Cache.

The cache is a hidden folder located at %WINDIR%\Installer. If you have been running Windows for any respectable length of time and installed a few programs to use; you will see that this folder is filled with MSP and MSI files. It is quite possible that many gigabytes of space are taken up with these files.

The curse of this design is that many users will delete these files to gain back that space. The consequences of which are that many programs (notably, SQL Server) will break during future upgrades or installs. Sometimes this problem is so severe that the best answer for resolution is formatting and reinstalling everything.

That is where I find myself this morning. I bought a 32 GB solid-state drive to install Windows on. But I forgot about the piggish Installer Cache and the drive quickly filled up completely. I moved some of those offending files (rather than delete them) to larger spinning-rust drives. This is merely a Band-Aid temporary solution though.

Today, I will add a new 120 GB SSD drive to my box and rebuild.

I hate rebuilding. There is always something that I forget to backup.

The "worse thing" that I initially mentioned is that Windows Setup should come with advanced options that give one finer-grained control about file location. These options may not be for everyone; but they should exist!

Please Microsoft, I’m begging you! Let me choose the location for the Windows Installer Cache during setup!

Seven Years…

Yesterday marked my seventh anniversary working with Microsoft’s SQL Server Customer Support.

I was hired with a group of nine others as vendors in the Mississauga, Ontario office. That site is now shutdown and I am the only one who is still doing support – the others have become DBAs around Southern Ontario. We had an awesome manager who inspired and encouraged us all regardless of how tough it got.

I still miss that team. We rocked and SQL CSS has never been the same without them.

Texas has been my new home for nearly four years now. The writing was on the wall that the Canadian team would be phased out, so I set the gears in motion to become a full-time Microsoft employee.

Wow! What a rollercoaster ride this has been.