Performance
The 29 checks in the “Performance” category of a SQL Server audit: what each one verifies, its severity and the versions covered.
- Checks in this category
- 29
- Weight in the score
- 14
- Breakdown by severity
- 6 high · 10 medium · 4 low · 9 info
Checks in this category
LATCH003Non-yielding scheduler events
HighDetects non-yielding scheduler events via the SCHEDULER_MONITOR ring buffer, a sign of a serious stall.
Versions : 2012-2025
PERF004High PAGEIOLATCH
HighHigh PAGEIOLATCH_* indicates disk I/O issues
Versions : 2012-2025
PERF006Memory Pressure
HighDetection of pending memory grants
Versions : 2012-2025
SCHED001Runnable tasks (CPU pressure)
HighMeasures runnable_tasks_count on visible schedulers; a persistent queue means tasks wait for CPU (signal-wait pressure).
Versions : 2012-2025
SCHED003THREADPOOL exhaustion
HighCompares active workers to the maximum and detects THREADPOOL waits, which mean SQL ran out of worker threads (the instance can appear hung).
Versions : 2012-2025
TDB001TempDB allocation-page contention
HighDetects live contention on tempdb allocation pages (PFS/GAM/SGAM) via PAGELATCH_UP waits.
Versions : 2012-2025
PERF001Page Life Expectancy
MediumMemory-scaled PLE target ((RAM GB / 4) × 300). Weak signal on its own - corroborate with PAGEIOLATCH waits
Versions : 2012-2025
PLAN001Single-use adhoc plan bloat
MediumDetects significant plan-cache memory consumed by single-use adhoc plans.
Versions : 2012-2025
PLAN002Plan cache flushed recently
MediumDetects an oldest-cached-plan age far below uptime, signalling a recent cache flush.
Versions : 2012-2025
PLAN003Compiles/recompiles ratio
MediumMeasures the compile and recompile ratio relative to batch requests (cumulative since restart).
Versions : 2012-2025
SCHED002Scheduler / work-queue imbalance
MediumMeasures work_queue_count and load spread across schedulers; a non-zero work queue means tasks wait for an available worker (thread starvation).
Versions : 2012-2025
SCHED004Offline schedulers / hidden cores
MediumDetects VISIBLE OFFLINE schedulers, usually caused by an affinity mask or a core/licensing limit hiding CPUs from SQL Server.
Versions : 2012-2025
TDB004TempDB metadata contention diagnostic
MediumMeasures all PAGELATCH waits on tempdb (allocation + metadata) as a contention indicator.
Versions : 2012-2025
TDB005TempDB XTP (HkTempDB) growth
MediumMeasures XTP memory consumed in tempdb by memory-optimized temp tables/variables (2019+).
Versions : 2019-2025
XTP003XTP not bound to resource pool
MediumDetects databases with memory-optimized data using the default/internal pool instead of a dedicated pool.
Versions : 2014-2025
XTP004XTP checkpoint file bloat
MediumMeasures checkpoint file pair (CFP) size for durable XTP; bloat signals merge lag or infrequent log backups.
Versions : 2014-2025
LATCH002Spinlock contention
LowIdentifies the spinlock with the most backoffs (cumulative), a CPU-spinning contention signal.
Versions : 2012-2025
SCHED005NUMA memory imbalance
LowMeasures foreign_committed_kb per memory node; a high value means a NUMA node is using another node's memory (cross-node latency).
Versions : 2012-2025
TDB002Trace flags 1117/1118 vs version
LowAudits trace flags 1117/1118; redundant on SQL 2016+ where this behaviour is the default.
Versions : 2012-2025
TDB006TempDB autogrowth/size sanity
LowChecks tempdb data files are equally sized and autogrowth is fixed-MB (not percent, not tiny).
Versions : 2012-2025
PERF002Buffer Cache Hit Ratio
InfoInformational only: read-ahead keeps this ratio at ~99-100%, so it does not reliably indicate memory health. Prefer wait stats
Versions : 2012-2025
PERF003Critical Waits
InfoAnalyze top wait statistics
Versions : 2012-2025
PERF005High CXPACKET
InfoHigh CXPACKET may indicate parallelism issues
Versions : 2012-2025
PERF007Query Store Enabled
InfoQuery Store helps diagnose performance issues
Versions : 2016-2025
PERF008Resource Governor
InfoVerify Resource Governor configuration if used
Versions : 2012-2025
PERF009Optimized locking not enabled (SQL Server 2025 - recommendation)
InfoOptimized locking (SQL Server 2025) reduces blocking, lock memory and lock escalation. It is OFF by default on SQL Server 2025. Informational check listing user databases where it is not enabled, prioritizing those already running ADR (direct candidates; full LAQ benefit also needs RCSI).
Versions : 2025
TDB003TempDB metadata memory-optimized
InfoChecks whether tempdb system metadata is memory-optimized (2019+), removing the PAGELATCH bottleneck.
Versions : 2019-2025
XTP001In-Memory OLTP inventory
InfoInventories databases using In-Memory OLTP (memory-optimized filegroup) and memory-optimized table count.
Versions : 2014-2025
XTP005SCHEMA_ONLY memory-optimized tables
InfoInventories memory-optimized SCHEMA_ONLY tables, whose data is lost on restart/failover.
Versions : 2014-2025
Other categories
- Security 103
- Backups 11
- Reliability 64
- Encryption 14
- Configuration 33
- Maintenance 33
- Database Settings 13
- Files 10
- Wait Statistics 9
- Advanced I/O 5
- Advanced Memory 8
- Blocking & Deadlocks 8
- Agent 8
- Query Store 8
- Linked Servers 5
- Capacity 9
- Updates 7
- Hardware 10
- Top Queries 7
- Stored Procedures 4
- Connections 6
- Extended Events 4
- Database Mail 3
- Database Level 7