Waking up from my blog-hibernation at this time is probably not ideal. I should spend my time on other things. For instance, on creating slide decks and demo code for the three completely new sessions that I will be delivering at various conferences within the next three months.
So why am I still taking the time to write this? Because I am super excited about these new sessions, that’s why!
Hash Match, the Operator
The idea for this session is now almost two years old. I cannot remember why, during break time at another conference, I found myself wondering whether it would be possible to create a full session on just a single showplan operator. I briefly considered and quickly rejected a few unlikely candidates, until I started thinking about Hash Match … and got more enthusiastic by the minute. Suddenly, the question was not how to fill a complete session on a single operator, but how to fit everything in just one single session!
I must admit that I still hesitated a long time before deciding to actually submit the abstract for this session to conferences. But earlier this year I started including it in my submission list for SQL Saturday events, and my friends at SQL Saturday Holland decided to allow me to try it out at their venue. So now I’ll actually have to create the session, and do so in time for a smooth delivery on September 30.
I have plenty ideas in my head, and if I manage to make only half of them come true then I have really high hopes for this session. It will absolutely be a level 500 session, where I will explore internals (documented and undocumented) of everything that a Hash Match operator can do in your execution plans. I plan to discuss in detail how each of its 12 supported logical operations are executed, how memory grants are computed and shared between multiple copies of the operator, and how spills are handled. I must add, though, that I am still researching a lot of the things I plan to cover, and I still need to find the answers to some of the questions I have been asking myself.
Get Creative with Service Broker
My next new session is for the PASS Summit. And this session is a bit outside of my normal speaking areas, because it is neither on query tuning and related subjects, nor on database design and normalization. It is about Service Broker.
Service Broker was added as a feature to SQL Server back in 2005, and I have always been intrigued by its option. Though designed as a tool to support building “asynchronous, loosely coupled applications”, it is in fact a very good and flexible tool that can be used in other situations as well. However, it never gained a lot of popularity, probably mostly due to its (overly?) complex architecture. And it’s hard to change that in a conference session: almost every session on Service Broker I have ever attended follows the same pattern: start by explaining the architecture and the basics … and then an hour has passed and the session is over.
I hope my session will be different. Instead of explaining all the nitty gritty details, I will only provide a short, very simplified description of only the things you really need to know to start using Service Broker. I will supply scripts for the entire setup, so I don’t have to explain all the steps and all the components. My plan is to cover this entire theoretical part in at most 15 or 20 minutes, leaving the rest of the session for only demos from real-world case studies.
I will present three real-world applications where I implemented Service Broker to achieve something that would have been much harder, if not impossible to achieve otherwise. I will explain the problem the organization had, the way Service Broker fixed this, and show a simplified version of the actual code used to implement those solutions.
Adaptive Query Processing
Finally, just two weeks (and two intercontinental flights) after PASS, I will also speak at SQL Server Live! 360 in Orlando. And I will actually deliver not one but two sessions there. On Thursday afternoon, I will first present “TSQL UserDefined Functions, or: How to Kill Performance in One Easy Step”, a session that I have presented many times already; it is a real fun session to present; and based on the feedback I receive the audience also likes both the presentation style and the lessons learned.
However, the new session for this conference follows immediately after, and it’s called “Adaptive Query Processing”. As indicated by the title, this session focuses on the three new SQL Server 2017 features that are collectively called Adaptive Query Processing: Batch Mode Memory Grant Feedback, Batch Mode Adaptive Join, and Interleaved Execution. Now if you are looking for a session that will briefly explain what each of these features does, then show some idealized demo where this all works perfectly and finishes this off by promising that you will never have performance problems again, look elsewhere: Microsoft has plenty of salespeople on payroll that will happily provide you with their sales pitch; I don’t feel the need to do their work for them.
Instead, I will dig a bit deeper than most other presenters do, and explain how these features actually work, how they are implemented, what functionality is exposed and what isn’t. As part of my research I plan to look for demos where these features work as intended, but also for demos where they backfire – and if I find them, I will certainly share them with you!
Can I be there?
If after reading this you are as enthusiastic about these sessions as I am, and feel you want to see them all, then I have some bad news, some good news, and some better news for you.
The bad news is that SQL Server Holland is at maximum capacity. You can still register to be put on a waiting list, but if you are not living relatively nearby that probably does not make a lot of sense. Of course, I will continue to submit the “Hash Match, the Operator” session to future SQL Saturday events, so who knows: you might be able to catch it later.
The good news is that both the PASS Summit and Live! 360 still have tickets for sale, so if you manage to get the budget and approval for a few days away from the office, emerged in deep learning, you can catch me (and lots of other fantastic speakers!) on those events.
And the better news is that, as a speaker, I can offer a discount on the admission price for Live! 360. If you use code LSPK43 when registering (or when you use this link), you get the full 5-day package for just $ 1,885. This is a saving of $ 500 on the standard price (or a saving of $300 on the Early Bird price). And unlike the Early Bird price, this offer does not expire, it remains valid until the start of the event.
Back to work!
And with that, I stop writing this blog and return to preparing my sessions. I still need to do tons of research, create several slides, and prepare lots of demos. Oh, and getting in some rehearsal time for all those new sessions might be a good idea as well.
I am already looking forward to going to those conferences, talking about my passions, and meeting old and new friends. Will you be one of them?