Users are waiting
The application still works, but pages, reports, jobs or imports are slow enough that the team needs a proper diagnosis.
Services / SQL Server performance review
I review SQL Server performance problems when slow queries, blocking or deadlocks keep coming back without a clear explanation.
Use this for blocking, deadlocks, wait stats, slow queries, plan changes, tempdb pressure or workload slowdowns that need evidence before the next fix.
Input
Symptoms, timing, affected workload, recent changes, and whatever evidence already exists.
Review
Waits, blocking, deadlocks, plans, indexes, statistics, tempdb, jobs, and workload timing.
Output
Likely cause, evidence, safe first changes, and what to collect if the problem returns.
Fit
The review is for performance problems that are real enough to affect work, but still unclear enough that another quick change would be a guess.
If the issue is broad operational risk, start with the health audit. If the pain is SQL performance, start here.
The application still works, but pages, reports, jobs or imports are slow enough that the team needs a proper diagnosis.
The same kind of incident keeps appearing, but the evidence still does not explain the head blocker, transaction pattern or plan choice.
Indexes, waits, CPU, storage, parameter sniffing, and tempdb have all been mentioned. The next change needs better evidence behind it.
The problem started after a deploy, data growth, reporting change, schedule change or new integration, and the old baseline no longer helps.
Review
Performance work starts with the symptom. Waits, plans, indexes, and server settings only matter when they explain what users actually see.
Symptom
Which users, jobs, reports or application paths are slow, when it happens, and whether the pain is constant, periodic or tied to one workload.
Waits
Current waits, historical waits where available, blocking chains, head blockers, long transactions, lock waits, and deadlock patterns.
Plans
Plan changes, regressions, parameter-sensitive behavior, expensive operators, memory grants, spills, and query patterns that changed over time.
Indexes
Missing, unused, duplicate, and over-wide indexes, stale statistics, key lookups, scans, and index maintenance that does not match the workload.
Tempdb
Tempdb layout, contention signs, version-store pressure, sort/hash spills, snapshot isolation side effects, and file growth behavior.
Platform
CPU pressure, memory grants, max server memory, MAXDOP, cost threshold, storage latency, log writes, and basic instance settings.
Timing
SQL Agent schedules, reporting windows, ETL, maintenance, backups, imports, and batch work that collide with normal application use.
Capture
Whether the current monitoring can explain the next incident, and what evidence should be collected before more tuning guesses happen.
Technical checks
The exact list depends on the symptom and the evidence available. These are the usual places I expect to check before recommending production changes.
Output
You get a diagnosis tied to evidence, a clear fix order, and fewer random production changes.
What is actually happening, when it happens, and which SQL Server signals support that view.
Important findings point back to waits, blocking chains, plans, Query Store, jobs, tempdb, storage or monitoring history.
Safe first changes, later changes, follow-up analysis, and watch items are separated so production is not tuned by guesswork.
For intermittent problems, the output includes the evidence to collect next time so the team is not starting from zero again.
Process
The first message only needs the symptom and whatever evidence already exists. A perfect packet is not required.
Scope depends on urgency, evidence quality, production access, and whether the issue is constant or intermittent.
Step
Send what users see, when it happens, recent changes, SQL Server version, and any waits, plans, blocked-process output, deadlock graphs or monitoring screenshots.
Step
I check the evidence that matches the complaint: waits, blocking, plans, Query Store, indexes, statistics, tempdb, jobs, and resource pressure.
Step
Some scary-looking numbers do not explain the symptom. Some boring details matter a lot. The discussion sorts that out.
Step
You get the likely cause, the evidence, the safe first changes, and what to collect if the problem is intermittent or not fully reproduced yet.
Proof and reading
Related
How to approach slow periods, waits, blocking, tempdb pressure, and workload timing.
Open guide
Related
How to separate waiting sessions from head blockers, transaction scope, and job overlap.
Open guide
Related
How to check file setup, growth, spills, version store, waits, and workload timing.
Open guide
Fit check
Use the health audit when the real concern is backups, jobs, monitoring, configuration, access, and general operational risk.
See health audit
Use recovery readiness when the main question is restore timing, backup chain quality, failover behavior or recovery runbooks.
See recovery readiness
Use upgrade support when the core work is version change, compatibility, test run, rollback, and validation.
See upgrade support
Use the consulting parent page when performance is only one part of a larger SQL Server problem.
See SQL Server consulting
Before you send it
Send the rough symptom, not a polished incident report. Timing, affected workload, and recent changes are enough to start.
If you have waits, plans, Query Store screenshots, deadlock graphs, blocked-process output, job history or monitoring charts, include them.
The first useful decision is whether this needs a performance review, a wider health audit or urgent production help.
I will look at the symptom and evidence, then tell you the sane next step. Sometimes that is a focused review. Sometimes the issue is wider than performance.
FAQ
The review checks the symptom, waits, blocking, deadlocks, query plans, Query Store, indexes, statistics, tempdb, jobs, workload timing, resource pressure, and the monitoring evidence available for the problem.
It can lead to tuning work, but the first job is diagnosis. I want to understand what is slow, why it is slow, and which first changes are safe enough to make.
Not always. I can start from Query Store exports, execution plans, deadlock graphs, blocked-process reports, wait snapshots, monitoring screenshots, and job history. Direct read-only access can make the work faster.
Send the symptom, timing, affected users or jobs, SQL Server version, recent changes, and any evidence around waits, plans, blocking, deadlocks, CPU, I/O, tempdb or Query Store.
Yes. Remote review is the default when the team can share enough evidence or access for a proper diagnosis.
Scope depends on urgency, available evidence, whether the issue is active or intermittent, and how much follow-up testing is needed after the first review.
You get a fix order. Some items can usually be changed safely. Some need testing, a deployment window, application changes or better evidence before anyone touches production.