Hugo Kornelis
banner
hugokornelis.bsky.social
Hugo Kornelis
@hugokornelis.bsky.social
Husband, father of two, loves SQL Server execution plans
New blog alert!
In my series on storage structures, I look at spatial indexes this time. What is tessellation, how is that used in the index, and how is that index then used in execution plans?

sqlserverfast.com/blog/hugo/20...
Storage structures 7 – Spatial indexes - SQLServerFast.com
Welcome back to the series on internals of storage structures. I first covered the standard storage types in the episodes on on-disk rowstore, columnstore indexes, memory-optimized storage, and memory...
sqlserverfast.com
October 4, 2026 at 4:09 PM
Forced by circumstances, I had to build my own shop for the SQLServerFast Execution Plan Video Training. This shop is now live! Read all about it in my latest blog post:

sqlserverfast.com/blog/hugo/20...
New shop! - SQLServerFast.com
Two and a half months ago, I informed you that Vimeo decided to shut down their VOD service, forcing me to find a new platform for hosting my videos and handling the sales. For me, that meant a lot of...
sqlserverfast.com
September 30, 2026 at 10:58 AM
I just added another new page to the #SQLServer Execution Plan Reference, to describe the Iterator icon, that, according to MS, is used when no specific icon is available ... except it isn't.

sqlserverfast.com/epr/iterator/
Iterator - SQLServerFast.com
Introduction The Iterator icon is not actually an operator. It is just an icon, intended to be used to represent operators for which no dedicated icon is available. I have so far only seen this icon b...
sqlserverfast.com
September 29, 2026 at 9:26 AM
Yet another step closer to completion. I just published the Cursor page on the #SQLServerFast Execution Plan Reference. Plus, as usual, a bunch of updates to existing pages. See the change log for the full list!

sqlserverfast.com/epr/cursor/
sqlserverfast.com/epr/change-l...
Cursor - SQLServerFast.com
Introduction The Cursor icon is not actually an operator. It is just an icon, similar to Language Element, but used specifically for cursor statement that do not need their own dedicated execution pla...
sqlserverfast.com
September 19, 2026 at 12:17 PM
New blog post! In this detailed and deep #SQLServer #Plansplaining post, I revisit the execution plan for frameless window aggregation (OVER without ORDER BY), to address some details previously overlooked, which leads me to uncover a bug and an invisible property.

sqlserverfast.com/blog/hugo/20...
Plansplaining part 35. A bug in Table Spool and an invisible property on Stream Aggregate - SQLServerFast
Welcome back to the plansplaining series. Probably the one with the longest, and least clickbaity title. The idea of plansplaining is to take a single execution plan and then fully dissect it, until e...
sqlserverfast.com
September 16, 2026 at 10:12 AM
It's been a while. But here is a new update to my leukemia diary.

sqlserverfast.com/blog/hugo/20...
A new treatment starts - SQLServerFast
(Warning: This blog post is non-technical but purely personal. In my leukemia diary, I write openly about my current health issues. This blog might be triggering for people who struggle with, or lost ...
sqlserverfast.com
September 1, 2026 at 4:20 PM
I just published another update to the #SQLServer Execution Plan Reference.
Two new pages: COND and COND WITH QUERY.
Three updated pages: Plan properties, Table Spool, and Window Spool.

All links are here: sqlserverfast.com/epr/change-l...
Change log - SQLServerFast
This site has different types of readers. Those that come here to quickly look up something, using it as the reference this is. And those that read everything, or at least the pages they consider inte...
sqlserverfast.com
August 24, 2026 at 12:20 PM
Today's update to the #SQLServer Execution Plan Reference is small in comparison to many previous updates: just a new page that describes the weird and dangerous behavior of the last cursor "operator": Fast Forward.

sqlserverfast.com/epr/fast-for...
Fast Forward - SQLServerFast
Introduction The Fast Forward “operator” is not actually an operator. It is the equivalent of the Language Element “operator” for the container of a fast forward cursor. The Fast Forward operator is n...
sqlserverfast.com
August 5, 2026 at 12:46 PM
I just published a MASSIVE update to the #SQLServer Execution Plan Reference. There are 4 new pages, for operations on JSON indexes, plus an additional 15(!) pages with various updates.
Check out the Change Log for a full overview.

sqlserverfast.com/epr/change-l...
Change log - SQLServerFast
This site has different types of readers. Those that come here to quickly look up something, using it as the reference this is. And those that read everything, or at least the pages they consider inte...
sqlserverfast.com
July 19, 2026 at 11:05 AM
I just published another blog post. Finally a technical post again. Here, I dive deep into the internal structure of JSON indexes in #SQLServer.

sqlserverfast.com/blog/hugo/20...
Storage structures 6 – JSON indexes - SQLServerFast
It’s time to continue the series on internals of storage structures. I already covered the more standard storage types in the parts about on-disk rowstore, columnstore indexes, memory-optimized storag...
sqlserverfast.com
July 17, 2026 at 10:59 AM
New blog post - trying to fix the mess that Vimeo made.
Please read, especially if you own any of my SQLServerFast Execution Plan Video Training videos.

sqlserverfast.com/blog/hugo/20...
Vimeo messed up, and you and I get the consequences - SQLServerFast
I am furious right now. Vimeo has made a mistake, and as a result, the SQLServerFast Execution Plan Video Training is currently not available for viewing. Vimeo’s announcement Four days ago, I got a n...
sqlserverfast.com
July 11, 2026 at 11:08 AM
It's that time of year again ... yes, another update to the #SQLServer Execution Plan Reference!

New page added: Keyset.
Page with major changes: Window Spool.
Small correction and addition: Scalar Functions.

sqlserverfast.com/epr/change-l...
Change log - SQLServerFast
This site has different types of readers. Those that come here to quickly look up something, using it as the reference this is. And those that read everything, or at least the pages they consider inte...
sqlserverfast.com
July 7, 2026 at 12:27 PM
I just posted a new blog. Another entry in my #Plansplaining series, but also a follow up to my post on XML indexes from two weeks ago.

sqlserverfast.com/blog/hugo/20...
Plansplaining part 34 - XML indexes revisited - SQLServerFast
Welcome back to my plansplaining blog series, where I dive deep into the details of non-obvious execution plans. This part is also a sort of follow up on my post from two weeks ago, when I wrote about...
sqlserverfast.com
June 30, 2026 at 3:46 PM
I just published the next entry in my ongoing Leukemia diary on my blog.

sqlserverfast.com/blog/hugo/20...
Change is the only constant - SQLServerFast
(Warning: This blog post is non-technical but purely personal. In my leukemia diary, I write openly about my current health issues. This blog might be triggering for people who struggle with, or lost ...
sqlserverfast.com
June 27, 2026 at 2:14 PM
I just published an update to the #SQLServer Execution Plan Reference. A few minor changes (see Change Log), and a new page, to describe the Snapshot "operator".

sqlserverfast.com/epr/snapshot/
Snapshot - SQLServerFast
Introduction The Snapshot “operator” is not actually an operator. It is the equivalent of the Language Element “operator” for the container of a static cursor. The Snapshot operator is not used in an ...
sqlserverfast.com
June 23, 2026 at 8:00 AM
Exactly a month after the last post in my leukemia diary, I have written another update. About that last month, but mostly the last week.

sqlserverfast.com/blog/hugo/20...
Another crazy week - SQLServerFast
(Warning: This blog post is non-technical but purely personal. In my leukemia diary, I write openly about my current health issues. This blog might be triggering for people who struggle with, or lost ...
sqlserverfast.com
June 19, 2026 at 7:38 PM
I just published a new blog post! This is part 5 in my series on storage structures, in which I look at how XML indexes are stored and queried.

sqlserverfast.com/blog/hugo/20...
Storage structures 5 – XML indexes - SQLServerFast
After covering on-disk rowstore, columnstore indexes, memory-optimized storage, and memory-optimized columnstores, it is now time to turn our attention to storage structures that are used for specific...
sqlserverfast.com
June 16, 2026 at 11:36 AM
I just published another update to the #SQLServer Execution Plan Reference. The new page describes the Dynamic "operator". As always, there are also a few updates to other pages.

sqlserverfast.com/epr/change-l...
Change log - SQLServerFast
This site has different types of readers. Those that come here to quickly look up something, using it as the reference this is. And those that read everything, or at least the pages they consider inte...
sqlserverfast.com
June 15, 2026 at 1:27 PM
Over the past months, I have published extensive updates to some of my existing Execution Plan Video Training videos for #SQLServer. Read all about how this affects you ... and how to benefit before the prices go up!

sqlserverfast.com/blog/hugo/20...
Video training update 2026 - SQLServerFast
During the past months, in between working on new videos, I have also made various updates to existing videos in the SQLServerFast Execution Plan Video Training. Since I pushed two really big updates ...
sqlserverfast.com
June 13, 2026 at 2:14 PM
Optional Parameter Plan Optimization, introduced in #SQLServer 2025, is really a great idea. But with its current terrible implementation, I actively dislike this feature. Want to know why? Check my latest vlog!

sqlserverfast.com/blog/hugo/20...
Optional Parameter Plan Optimization - SQLServerFast
It’s time to finish the triptych on bad parameter sniffing, and how Microsoft tries (and fails) to fix this for you. After first talking about bad parameter sniffing in general, I used my last video t...
sqlserverfast.com
June 6, 2026 at 10:18 AM
Yet another step closer to completion of the #SQLServer Execution Plan Reference. I just added the page for the Fetch Query "operator". Plus, as usual, a bunch of smaller and larger updates to other pages.

sqlserverfast.com/epr/fetch-qu...
sqlserverfast.com/epr/change-l...
Fetch Query - SQLServerFast
Introduction The Fetch Query “operator” is not actually an operator. It is the equivalent of the Language Element “operator” for one of the two queries contained in a cursor definition. The Fetch Quer...
sqlserverfast.com
May 29, 2026 at 12:49 PM
New blog! In which I continue my series on storage structures, this time focusing on the (little used) memory-optimized columnstore index.

sqlserverfast.com/blog/hugo/20...
Storage structures 4 – Memory-optimized columnstore - SQLServerFast
Time for the next part in my series on storage structures. The previous parts covered on-disk rowstore, columnstore indexes, and memory-optimized storage. In this part, I will look at the combination ...
sqlserverfast.com
May 27, 2026 at 9:05 AM
My new video blog is out. I take a detailed and critical look at PSPO, the feature that Microsoft introduced in #SQLServer 2022 to help alleviate the pain of bad parameter sniffing. But does it really deliver as expected? Well, that depends on how much you expect!

sqlserverfast.com/blog/hugo/20...
Parameter Sensitive Plan Optimization - SQLServerFast
Bad hair day? Try having an almost-no-hair month! Jokes aside. It has been almost six weeks since my last video blog. Not really the schedule I had planned. But I believe I have good reasons. Anyway, ...
sqlserverfast.com
May 23, 2026 at 9:11 AM