Posts by Brent Ozar

Your Favorite Posts From This Year

Company News
3 Comments
Reading is fundamental, and fundamentally, here are the 2025 blog posts that y’all read the most this year. (This list doesn’t include the most popular timeless posts overall.) 10. Free Spring Training Webcasts – I’ve noticed that people have near-zero interest these days in paying to attend live online classes, but they’re still really interested…
Read More

[Video] Office Hours in Zhengzhou, China

Videos
2 Comments
I really wanted to film Office Hours on the Great Wall of China, but the instant I got out there, I realized it was a lost cause. That place was SO overwhelming – tons of people, frigid winds, heights, totally overwhelming in every way. So, instead you get a nice peaceful park in downtown Zhengzhou,…
Read More

Known Issues So Far in SQL Server 2025

SQL Server 2025
16 Comments
Whenever a brand spankin’ new version of any software comes out, there are bugs, and SQL Server is no exception. This has led to a mentality where folks don’t wanna install a new version of SQL Server until the first couple of Cumulative Updates come out, hopefully fixing the first big round of bugs. So……
Read More

[Video] Office Hours at the Last Spike

Videos
2 Comments
I drove the Graffiti Gulf out to The Last Spike (video) outside of Las Vegas and took your top-voted questions from https://pollgab.com/room/brento. Here’s what we covered: 00:00 Start 01:45 Jan de Graaf: Our database landscape seems CPU-bound. We sometimes hit 100% CPU with organic load. We’re considering new hardware. Do you think memory speed plays…
Read More
Missing order id 2

Identity Columns Can Have Gaps, and That’s Okay.

Development
13 Comments
Say you’ve got a table with an identity column, something that’s supposed to start at 1 and go up to a bajillion: Transact-SQL DROP TABLE IF EXISTS dbo.Orders; CREATE TABLE dbo.Orders (Id INT IDENTITY(1,1) PRIMARY KEY CLUSTERED, OrderDate DATETIME2, CustomerName NVARCHAR(50)); GO /* Put a starter row in there: */ INSERT INTO dbo.Orders (OrderDate, CustomerName)…
Read More

[Video] Office Hours: Everything’s Gone Wrong Edition

Videos
2 Comments
I threw in the towel on my workday at 3PM when everything started going wrong in the Ozar home office, so I switched to answering your top-voted questions from https://pollgab.com/room/brento. Here’s what we covered: 00:00 Start 03:59 MyTeaGotCold: How often do you see indexed views these days? 04:14 I 3Fedora: Hi Brent, Not strictly database…
Read More
I'm killing your query.

How’s the Job Market? Let’s Find Out Together.

Salary
2 Comments
Every year, I run a salary survey to help folks have better discussions with their managers about salaries, benefits, and career progression. This year, the survey is for unemployed folks, too! The first question has a new option for “Unemployed (and looking).” Note that if you’re retired, thanks, but you can skip this survey. Congrats…
Read More

[Video] Office Hours: Fireside Chat Edition

Videos
5 Comments
It’s the perfect time of year in Las Vegas when we can chill outside by the fire, enjoy a glass of wine, and go through your top-voted questions from https://pollgab.com/room/brento. Here’s what we covered: 00:00 Start 00:54 iliyan Rashev: Hello Brent, I am on SQL Server 2019 RTM Please recommend a patching path: 1. Apply…
Read More

Updated First Responder Kit and Consultant Toolkit for November 2025

First Responder Kit Updates
0
This quarter’s release includes new checks for SQL Server 2025’s new memory pressure warnings, Azure SQL DB’s operations in progress, accurate CPU usage on Docker containers, warnings about not using partitioned statistics where appropriate, and much more. If you’d like to thank me for my work in maintaining the First Responder Kit, the best way…
Read More
SQL ConstantCare Badges (cropped)

The First SQL ConstantCare Badges Just Went Out

SQL ConstantCare
6 Comments
Ever wonder how big your database estate is compared to others? Whether you’ve got more servers, more databases, more workloads, or more problems? Well, if you’re one of my SQL ConstantCare® customers, check your email: our first set of badges just went out! With SQL ConstantCare®, your SQL Servers send us diagnostic data once per…
Read More
Accurate estimates

Functions in the WHERE Clause Are Bad… Right?

Statistics
11 Comments
Nah, not necessarily. SQL Server’s query optimizer behavior keeps changing with every freakin’ version. Let’s illustrate it with a simple query against the Stack Overflow Users table: Transact-SQL CREATE INDEX Location ON dbo.Users(Location); GO SELECT COUNT(*) FROM dbo.Users WHERE Location = N'Ahmadabad, India' OPTION (RECOMPILE); 12345 CREATE INDEX Location ON dbo.Users(Location);GOSELECT COUNT(*) FROM dbo.Users    WHERE Location…
Read More
Fundamentals of TempDB

T-SQL Query Exercise: Generate Big Spills

Query Exercises
18 Comments
When I was testing SQL Server 2025’s new ability to limit TempDB usage with Resource Governor, I wrote a few fun diabolical demos. One of them was to generate giant spills to TempDB, quickly. When you’re looking at an actual (not estimated) query plan, and you see a yellow exclamation point on a sort operator,…
Read More