Database Animations: What’s a Residual Predicate and Why Is It Bad?
Normally when you're looking at an execution plan, and you see an index seek followed by a key lookup, that means it's running relatively quickly.
2026-09-14
Normally when you're looking at an execution plan, and you see an index seek followed by a key lookup, that means it's running relatively quickly.
2026-09-14
See how SQL Server 2025 uses Optional Parameter Plan Optimization to create separate plans for selective and unfiltered searches, how to verify the dispatcher and variants, and when dynamic SQL or recompilation is still the better choice.
2026-09-14
2,100 reads
2026-09-02
1,000 reads
This article looks at replacing a cursor with a window function to improve performance.
2026-08-03
6,590 reads
You've heard that page splits are bad, and they're an indication that your table design is making your storage work too hard. You've heard that the right answer to fix it is adjusting fill factor lower, or doing regular index maintenance.
2026-08-03
Recognizing queries that might perform poorly is a skill that will help you, and your AI assistant, produce better code in production.
2026-08-03
232 reads
Steve asks if we should focus on the slowest queries or tackle other issues in our systems. Or if we should even have to make these decisions.
2026-07-31
164 reads
Learn about implicit conversions, which can dramatically affect the performance of your workload.
2026-07-17
3,508 reads
Built the index, but SQL Server still scans the whole table? Learn how to read execution plans and find exactly why your index is being ignored.
2026-05-18
3,162 reads
In theory, SQL Server performance monitoring is pretty simple: 1. Review the server’s top wait types, 2. Find the queries causing those wait types, 3. Fix those queries, or improve the way the server reacts to them (indexes, settings, etc.). But in practice, step 2 is awful because:
2026-05-13
By Steve Jones
Thanks for attending my sessions. Resources below: Slides: Using Data API Builder GitHub repo: ...
By Steve Jones
Thanks to everyone that attended my sessions at VS Live San Diego yesterday. It...
By Steve Jones
I was creating a question on sp_readerrorlog and realized that this procedure is different...
When I run my query from DW, which uses a linked server, it times...
Comments posted to this topic are about the item Implementing Type 4 Slowly Changing...
Comments posted to this topic are about the item The Disabled Index
I run this code on SQL Server 2022.
CREATE TABLE Drink
(
drinkid INT NOT NULL
CONSTRAINT DrinkPK PRIMARY KEY CLUSTERED,
drinkname VARCHAR(20),
rating NUMERIC(2, 1)
)
GO
INSERT INTO Drink
(
drinkid,
drinkname,
rating
)
VALUES
(1, 'Margarita', 4.5),
(2, 'Mojito', 4.3),
(3, 'Old Fashioned', 4.7),
(4, 'Martini', 4.4),
(5, 'Cosmopolitan', 4.2)
GO
ALTER INDEX drinkpk ON dbo.drink DISABLE
GO
SELECT * FROM dbo.Drink
GO
What is the result? See possible answers