SQLServerFast https://sqlserverfast.com/ Your online resource for SQL Server query tuning Mon, 16 Mar 2026 19:34:09 +0000 en-US hourly 1 139407399 SQL injection, and how to prevent it https://sqlserverfast.com/blog/hugo/2026/03/sql-injection-and-how-to-prevent-it/ https://sqlserverfast.com/blog/hugo/2026/03/sql-injection-and-how-to-prevent-it/#respond Mon, 16 Mar 2026 19:34:09 +0000 https://sqlserverfast.com/?p=12503 For a change, a video about security, rather than performance and execution plans. Why? Well, that should become clear in my next planned videos. Although I really can’t predict when I’ll be able to record those. What is it? And how to prevent it? In the first approximately 12.5 minutes of the video, I try...

The post SQL injection, and how to prevent it appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/03/sql-injection-and-how-to-prevent-it/feed/ 0 12503
Back in hospital https://sqlserverfast.com/blog/hugo/2026/03/back-in-hospital/ https://sqlserverfast.com/blog/hugo/2026/03/back-in-hospital/#comments Sun, 15 Mar 2026 18:59:00 +0000 https://sqlserverfast.com/?p=12500 (Warning: This blog post is non-technical but purely personal. I write openly about my current health issues. This blog might be triggering for people who struggle with, or lost dear ones to, cancer and other similar diseases.) Time for an update in my leukemia diary. I had planned to write as soon as I was...

The post Back in hospital appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/03/back-in-hospital/feed/ 5 12500
Return to the diary https://sqlserverfast.com/blog/hugo/2026/03/return-to-the-diary/ https://sqlserverfast.com/blog/hugo/2026/03/return-to-the-diary/#comments Thu, 05 Mar 2026 17:50:46 +0000 https://sqlserverfast.com/?p=12495 (Warning: This blog post is non-technical but purely personal. I write openly about my current health issues. This blog might be triggering for people who struggle with, or lost dear ones to, cancer and other similar diseases.) In September 2022, I was diagnosed with leukemia. I was treated with chemotherapy, I received a stem cell...

The post Return to the diary appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/03/return-to-the-diary/feed/ 10 12495
Optimized Locking part 2: Lock After Qualification https://sqlserverfast.com/blog/hugo/2026/02/optimized-locking-part-2-lock-after-qualification/ https://sqlserverfast.com/blog/hugo/2026/02/optimized-locking-part-2-lock-after-qualification/#respond Thu, 26 Feb 2026 15:52:32 +0000 https://sqlserverfast.com/?p=12490 SQL Server 2025 introduced Optimized Locking. Not one, but two features, sharing a single marketing name. Lock After Qualification (LAQ) One of these two features is Lock After Qualification (LAQ). This feature avoids the scenario where a delete or update is blocked by a locked row that would not qualify. But, like any good thing,...

The post Optimized Locking part 2: Lock After Qualification appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/optimized-locking-part-2-lock-after-qualification/feed/ 0 12490
Video training update https://sqlserverfast.com/blog/hugo/2026/02/video-training-update/ https://sqlserverfast.com/blog/hugo/2026/02/video-training-update/#respond Sun, 22 Feb 2026 15:05:23 +0000 https://sqlserverfast.com/?p=12485 My training videos in the SQLServerFast Execution Plan Video Training are never just a done deal. Whenever there is new information to share, either because Microsoft adds new functionality, or because I discover something I did not know before, I go back and add this new information to the appropriate videos. Any such update always...

The post Video training update appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/video-training-update/feed/ 0 12485
Precon, precon, precon https://sqlserverfast.com/blog/hugo/2026/02/precon-precon-precon/ https://sqlserverfast.com/blog/hugo/2026/02/precon-precon-precon/#respond Sun, 15 Feb 2026 13:00:16 +0000 https://sqlserverfast.com/?p=12463 If you read this blog, then it is very likely that you have an interest in execution plans. And that you want to increase your understanding of execution plans. A great way to really get to the next level is to attend a precon about execution plans, to get a full day of training on...

The post Precon, precon, precon appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/precon-precon-precon/feed/ 0 12463
Storage structures 3 – Memory-optimized https://sqlserverfast.com/blog/hugo/2026/02/storage-structures-3-memory-optimized/ https://sqlserverfast.com/blog/hugo/2026/02/storage-structures-3-memory-optimized/#respond Fri, 13 Feb 2026 17:35:28 +0000 https://sqlserverfast.com/?p=12458 Update February 26: The maximum of 8 memory-optimized indexes per table was dropped in SQL Server 2017. After discussing traditional on-disk rowstore storage in part 1 and columnstores in part 2, it is now time to turn our eye towards memory-optimized storage structures in SQL Server. Memory-optimized storage was introduced in SQL Server 2014, as...

The post Storage structures 3 – Memory-optimized appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/storage-structures-3-memory-optimized/feed/ 0 12458
Optimized Locking part 1: Transaction ID Locking https://sqlserverfast.com/blog/hugo/2026/02/optimized-locking-part-1-transaction-id-locking/ https://sqlserverfast.com/blog/hugo/2026/02/optimized-locking-part-1-transaction-id-locking/#respond Thu, 12 Feb 2026 15:56:32 +0000 https://sqlserverfast.com/?p=12455 SQL Server 2025 introduced Optimized Locking. Not one, but two features, sharing a single marketing name. Transaction ID (TID) Locking One of these two features is Transaction ID (TID) Locking. Slated to end the memory waste of thousands of individual row locks, and the concurrency killer of lock escalation. What it is, how does it...

The post Optimized Locking part 1: Transaction ID Locking appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/optimized-locking-part-1-transaction-id-locking/feed/ 0 12455
T-SQL Tuesday 195 – Code that aged well https://sqlserverfast.com/blog/hugo/2026/02/t-sql-tuesday-195-code-that-aged-well/ https://sqlserverfast.com/blog/hugo/2026/02/t-sql-tuesday-195-code-that-aged-well/#respond Tue, 10 Feb 2026 13:16:56 +0000 https://sqlserverfast.com/?p=12452 It’s the second Tuesday of the month again. Time for T-SQL Tuesday, edition 195. This edition is hosted by Pat Wright, who wants to know whether our code aged well. The timing of that question could not have been any better for me, because I am right now working on an assignment related to a...

The post T-SQL Tuesday 195 – Code that aged well appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/t-sql-tuesday-195-code-that-aged-well/feed/ 0 12452
Rowgoals, part 3: When rowgoals backfire https://sqlserverfast.com/blog/hugo/2026/02/rowgoals-part-3-when-rowgoals-backfire/ https://sqlserverfast.com/blog/hugo/2026/02/rowgoals-part-3-when-rowgoals-backfire/#respond Mon, 02 Feb 2026 11:14:53 +0000 https://sqlserverfast.com/?p=12435 In part 1 of this mini-series, I explained what a rowgoal is and how it works to optimize a query with a TOP or FETCH expression. Part 2 then showed a few less obvious other cases where the optimizer might introduce rowgoals. In all cases so far, those rowgoals were beneficial. They helped the optimizer...

The post Rowgoals, part 3: When rowgoals backfire appeared first on SQLServerFast.

]]>
https://sqlserverfast.com/blog/hugo/2026/02/rowgoals-part-3-when-rowgoals-backfire/feed/ 0 12435