Posts

T-SQL Tuesday 191 – String parsing (and why I hate intelligent keys)

2 Comments
Welcome to the delayed 191st T-SQL Tuesday. Our host is, once more, Steve Jones. This time, he asks us to write about our favorite string parsing. Which is an odd thing to ask: nobody ever said “I like doing string manipulation in T-SQL”. So instead of doing what Steve asked, I will provide some background, and they show some tricks that might make the task a bit less unpleasant. Why intelligent keys are anything but intelligent I am currently most known for my performance tuning and execution plan work. But when I started working with database, I actually came from…

Black Friday 2025

No Comments
It’s October. Almost time for the annual Black Friday tradition, where companies prove how large their regular margins are by giving deep discounts to all their customers. Since the margin on my SQLServerFast Execution Plan Video Training is 100% (if we conveniently fail to count the hundreds of hours of labour I put in), I can also jump this bandwagon. I have done so in previous years, and by now I guess my regulars almost expect me to. So, let’s not disappoint people. Like previous years, during the entire month of November 2025, all video purchases are discounted by a…

A deep dive into hash tables, part 3

No Comments
Welcome back! In the previous parts, I first showed how a Hash Match (Left Outer Join) can give insight in the order of data in a hash table, and then used that trick to obtain and verify some interesting insights into the internal structure of such a table. It’s now time to see if this same trick can also be used to find hash collisions. The foundation for this part are these two conclusions from the previous parts: Unmatched rows from the left (top) input are returned bucket by bucket, with rows that are in the same bucket returned in…

T-SQL Tuesday 190 – Mastering a technical skill

No Comments
It’s time for T-SQL Tuesday again. Our host for edition 190 is Todd Kleinhans, and he asks us to write about mastering technical skills. I like that topic. Most of all, of course, because I spend a lot of time teaching, which is for most people the other side of mastering new skills, or improving existing skills. But also because I believe that we all live in a world of continuous learning. Those who do not learn will fall behind. Gradually at first, then ever faster. Of course, that does leave us with the choice of which technical skill to…

Video training update 2025

No Comments
There have not been any updates for the SQLServerFast Execution Plan Video Training for a long time. In fact, it’s already over one and a half year since the last set of videos was released! But that is not because I have been sitting still. I have, in fact, done a lot of work between then and now, even though the effects of all that work might not have been very visible. Changed plans After completing and releasing block 3 (Combining data), I started working on the next planned block, which would have been block 4 (Sorting and grouping). But…
A rather failed attempt to have AI render an image where four matches are arranged in the form of the hashtag (pound) symbol.,

A deep dive into hash tables, part 2

In part 1 of this series, I laid the foundation to explore the structure of the hash table, as used by the Hash Match operator, by alleging and then proving that a Hash Match (Left Outer Join) returns unmatched rows from the build input in the order in which they are stored in the hash table. This means that we can create queries on carefully curated data to gain insight in the structure of that hash table. It is now time to use that trick to actually start to explore the hash table. But not without also looking at available…

A deep dive into hash tables, part 1

We all know the Hash Match operator. It joins or aggregates data, based on a hash table. That hash table is ideally stored in memory. But if the granted memory is insufficient, then Hash Match will spill to tempdb, which is slow. I assume that every reader of this blog knows this already. But what you probably don’t know is how that hash table is structured. How is the data stored? Where are new rows added, how is the table accessed? To be fair, none of this is useful knowledge, unless you work for the engine team at Microsoft. And…

T-SQL Tuesday 183 – Permission hell

2 Comments
The 183rd edition of T-SQL Tuesday is hosted by Steve Jones. He has picked everyone’s favorite (cough) topic: permissions, and how to manage them. I am lucky. With my specialization in query performance tuning, I don’t often have to deal with permissions. (Well, apart from of course not getting the permissions I need to do my work effectively). But I have been in contracts where I was the only employee able to spell SQL, and hence all other database tasks also fell in my lap. Including permissions. And yes. I have been in projects where the idea was to investigate…

T-SQL Tuesday 182 – Integrity

No Comments
(I wrote this well in time. Really. I swear. And then … forgot to publish it in time. Oh well. This will then be my T-SQL Wednesday, I guess?) Welcome to the first T-SQL Tuesday of 2025. Hosting duty this time falls on Rob Farley’s shoulders. And he has found a great topic: Integrity. I really love this topic, because, as Rob himself also acknowledges and explains, that single word can mean many things in the Data Platform community. With this being a technical blog, by someone who loves not only execution plans but also data modelling and database design,…

T-SQL Tuesday 181 – Amazing announcements

No Comments
It’s December. The last month of the year, and hence also the last T-SQL Tuesday of the year. Edition 181 is hosted by Kevin Chant. His chosen topic for this episode is to have us talk about which SQL Server announcement excited us the most. This posed a bit of a problem for me. The only truthful answer here is that I have never been as excited about an announced new feature as when the Query Store was announced. But I also realized that I don’t have much to write about the Query Store, except how awesome it is. Okay,…

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close