SQL Server Counters
Page Description
This dashboard provides a global operational view of a SQL Server instance. It brings together quick indicators to validate availability, memory usage, tempdb space, database and log size, engine activity, I/O latency, waits, and replica synchronization. It is meant to be the first place to check whether the main issue is memory, CPU, concurrency, storage, or high availability.
Variables
| Variable | Description |
|---|---|
$Instance | SQL Server instance to analyze. It changes every panel on the page so the whole view focuses on that server. |
Time range | Time period used by historical panels. It mainly affects time series and the averages shown in performance counters. |
Instance Info
Immediate summary of the selected instance: uptime, memory, tempdb, cache, CPU, connections, and base engine counters.
Up Time
- Description: Time elapsed since the last instance startup. It helps detect recent restarts and gives context to other counters that may not be stable yet.
- Panel type: stat
- Units: Days
Thresholds
| Value | Color | Description |
|---|---|---|
| Up to 1 day | Recent restart or still in warm-up phase. | |
| > 1 day | Stable uptime. |
Practical recommendation: If the instance restarted recently, review Page Life Expectancy, Buffer Cache Hit Ratio, and memory usage before drawing conclusions.
Max SQL Server Memory
- Description: Maximum memory SQL Server is configured to use. It helps validate whether the instance has a sensible limit compared with total server RAM.
- Panel type: stat
- Units: Memory
Practical recommendation: Make sure enough memory is reserved for the operating system and other services to avoid paging and external memory pressure.
Used SQL Server Memory
- Description: Memory currently used by SQL Server. It is useful to compare real consumption with configured maximum and current workload.
- Panel type: stat
- Units: Memory
Practical recommendation: If usage stays close to the maximum and cache-related counters worsen, review memory settings and concurrent workload.
Free Space in Tempdb
- Description: Free space inside
tempdbfiles. It measures the remaining margin before temporary activity starts running short on usable space. - Panel type: stat
- Units: Free space
Thresholds
| Value | Color | Description |
|---|---|---|
| Up to 512 MB | Very limited free space. | |
| Between 512 MB and 1 GB | Acceptable margin, but worth watching. | |
| > 1 GB | Comfortable free space for usual workload. |
Practical recommendation: If free space keeps dropping, review autogrowth, version store, temp tables, and large sort or hash operations.
Page Life Expectancy
- Description: Average time in seconds that pages remain in memory before being evicted from the buffer pool. It is a direct indicator of cache stability.
- Panel type: stat
- Units: Seconds
Thresholds
| Value | Color | Description |
|---|---|---|
| Up to 300 s | Strong memory pressure. | |
| Between 300 s and 1000 s | Improving, but still sensitive. | |
| > 1000 s | Reasonable cache retention. |
Practical recommendation: If it drops sharply while physical reads or tempdb activity increase, review high-read queries, missing indexes, or insufficient memory.
Buffer Cache Hit Ratio
- Description: Percentage of pages served from cache instead of disk. It reflects the immediate efficiency of the buffer pool.
- Panel type: stat
- Units: Percentage
Thresholds
| Value | Color | Description |
|---|---|---|
| Up to 95 % | Weak cache efficiency and more disk dependency. | |
| Between 95 % and 98 % | Fair ratio, but still improvable. | |
| > 98 % | Good memory usage efficiency. |
Practical recommendation: Read this together with Page Life Expectancy; a high ratio with unstable PLE can still mean excessive page churn.
Backup/Restore Throughput
- Description: Observed transfer speed during backup or restore operations. It helps estimate whether storage can keep up with backup and recovery workload.
- Panel type: stat
- Units: Bytes per second
Practical recommendation: If speed is low during active backup or restore windows, validate compression, parallelism, and source and target storage performance.
CPU Count
- Description: Number of CPU cores SQL Server can use. It is a base reference for interpreting parallelism, workers, and overall capacity.
- Panel type: stat
- Units: Count
Practical recommendation: Use this value as a reference when reviewing MAXDOP, cost threshold for parallelism, and scheduler saturation under high CPU load.
Memory Grants Pending
- Description: Number of requests waiting for workspace memory to execute sorts, hashes, or other memory-dependent operations.
- Panel type: stat
- Units: Count
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 1 | No queued memory grants. | |
| Between 2 and 5 | Queries are waiting for memory. | |
| > 5 | Clear execution-memory pressure. |
Practical recommendation: If it stays above zero, review plans with sort or hash, outdated statistics, and large concurrent queries.
Active Temp Tables
- Description: Number of active temporary tables at the observed moment. It helps detect workloads that rely heavily on temporary objects.
- Panel type: stat
- Units: Count
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 100 | Normal temporary-object usage. | |
| > 100 | High temporary-table usage. |
Practical recommendation: If it grows together with tempdb usage, identify processes or procedures creating many #temp tables or holding them for too long.
Version Store Size
- Description: Size of the version store used by
RCSI,Snapshot Isolation, and some online operations. High growth can pressuretempdb. - Panel type: stat
- Units: Version-store space
Practical recommendation: If it keeps growing, review long transactions, long-running reads on readable replicas, and heavy write workloads.
Checkpoint pages/sec
- Description: Number of dirty pages written to disk during checkpoints. It reflects write pressure and buffer pool flush activity.
- Panel type: stat
- Units: Pages per second
Practical recommendation: If it stays high together with disk latency, review checkpoint frequency, write intensity, and target recovery settings.
Page lookups/sec
- Description: Requests per second to locate pages in the buffer pool. It is a useful indicator of logical read activity.
- Panel type: stat
- Units: Lookups per second
Practical recommendation: Treat this as a workload indicator; if it rises together with full scans and weaker cache metrics, review indexes and queries.
Average User Connections
- Description: Average number of simultaneous user connections. It helps measure concurrency pressure and gives context to CPU or memory spikes.
- Panel type: stat
- Units: Connections
Thresholds
| Value | Color | Description |
|---|---|---|
| Up to 25000 | Usual connection level. | |
| > 25000 | Very high concurrency for the instance. |
Practical recommendation: If the count grows more than expected, verify connection pooling, orphaned sessions, and application traffic spikes.
Databases Info
Aggregated database status and a compact view of total space and memory related to the instance.
Databases Health
- Description: Aggregated indicator that summarizes whether any database is currently in a problematic or unavailable state.
- Panel type: stat
Practical recommendation: If the panel is no longer healthy, move immediately to the individual state counters to identify the affected database.
ONLINE
- Description: Number of databases available in
ONLINEstate. It is the baseline for normal operating volume. - Panel type: stat
- Units: Count
Practical recommendation: Use this value as a baseline and compare it after maintenance, migrations, or incidents.
OFFLINE
- Description: Number of databases that remain offline by administrative action or due to a pending issue.
- Panel type: stat
- Units: Count
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 1 | No OFFLINE databases. | |
| > 1 | There are offline databases that need validation. |
Practical recommendation: Confirm whether the state is intentional; if not, review files, permissions, and the error log before bringing the database online.
SUSPECT
- Description: Number of databases marked as
SUSPECT, usually related to corruption, I/O issues, or recovery failures. - Panel type: stat
- Units: Count
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 1 | No SUSPECT databases. | |
| > 1 | At least one database is at high risk. |
Practical recommendation: Treat this as a priority state: review the error log, validate storage, and prepare DBCC CHECKDB or restore if needed.
RECOVERING
- Description: Number of databases currently in recovery. It can be normal after restart, restore, or failover.
- Panel type: stat
- Units: Count
Practical recommendation: If the state lasts longer than expected, review recovery progress, available I/O, and possible file-level issues.
PENDING
- Description: Number of databases that cannot complete startup because of missing resources or unavailable files.
- Panel type: stat
- Units: Count
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 1 | No PENDING databases. | |
| > 1 | Some databases are blocked by missing resources or files. |
Practical recommendation: Review free space, disk connectivity, and file path consistency before forcing any action on the affected database.
RESTORING
- Description: Number of databases currently in restore phase and not yet available for normal use.
- Panel type: stat
- Units: Count
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 1 | No active restores. | |
| > 1 | Restore activity is in progress. |
Practical recommendation: If the value does not return to zero when expected, validate the backup chain, storage, and whether an additional RESTORE step is missing.
Total Data File Size
- Description: Sum of the size of all data files in the instance. It gives a quick idea of total database storage footprint.
- Panel type: stat
- Units: Data space
Practical recommendation: Watch for sudden increases and confirm that data files are pre-sized to avoid frequent growth events.
Total Log Files Size
- Description: Sum of the size of all log files. It helps detect whether reserved log space is consistent with overall instance activity.
- Panel type: stat
- Units: Log space
Practical recommendation: If the total grows a lot, review recovery model, log backup frequency, and long-running operations.
Total Log Files Used Size
- Description: Logical space currently used inside log files. It helps distinguish allocated size from actual use.
- Panel type: stat
- Units: Used log space
Practical recommendation: If usage repeatedly approaches total size, review log truncation, backups, and long open transactions.
Memory Clerk Buffer Pool
- Description: Memory size associated with the buffer pool, where SQL Server keeps data and index pages to accelerate reads.
- Panel type: stat
- Units: Memory
Practical recommendation: Compare this value with max memory and Page Life Expectancy to determine whether cache growth is healthy or under pressure.
Database size
Database-level size distribution and time tracking of total log usage.
Data File Size by Database
- Description: Distribution of data file size by database. It quickly shows which databases consume most of the storage.
- Panel type: piechart
- Units: Data space
Practical recommendation: Review the largest databases and confirm that expected growth is documented and backed by storage capacity planning.
Log File Size by Database
- Description: Distribution of log file size by database. It helps detect oversized logs or databases with unusual log requirements.
- Panel type: piechart
- Units: Log space
Practical recommendation: If one database clearly stands out, review log backup cadence, bulk operations, and autogrowth settings.
Total Log Files Used Size
- Description: Time evolution of total used log space across the instance. It is useful to identify spikes, trends, and high transaction windows.
- Panel type: timeseries
- Units: Used log space
Practical recommendation: Correlate spikes with data loads, maintenance, or missing log truncation so the observed growth has a clear explanation.
Performance counters
Time series for engine activity, workers, cache, waits, memory, internal I/O, and transaction behavior.
CPU (beta)
- Description: Compares CPU percentage consumed by the instance itself against the rest of the system processes. It helps separate SQL Server pressure from host-level pressure.
- Panel type: timeseries
- Units: Percentage
Practical recommendation: If total CPU is high but SQL Server is not leading the usage, investigate antivirus, backup agents, or other host services before tuning queries.
Workers
- Description: Shows current and active workers, work queue, runnable tasks, and a reference line for maximum available workers.
- Panel type: timeseries
- Units: Count
Practical recommendation: If active workers approach the limit while work queue or runnable tasks grow, review parallelism, blocking, and concurrent query load.
User Connections
- Description: Time evolution of user connections. It helps detect concurrency peaks and recurring hourly patterns.
- Panel type: timeseries
- Units: Connections
Practical recommendation: Use this chart to give context to CPU, memory, or blocking spikes; many issues match connection peaks.
Buffer Cache Hit Ratio
- Description: Time evolution of cache hit percentage. It shows whether memory efficiency stays stable or drops in specific periods.
- Panel type: timeseries
- Units: Percentage
Practical recommendation: If the ratio drops during specific windows, review batch jobs, reporting windows, or heavy queries that flush useful pages from cache.
Page Life Expectancy
- Description: Time evolution of how long pages remain in memory. It is useful to detect short-lived dips or long-term deterioration of the buffer pool.
- Panel type: timeseries
- Units: Seconds
Practical recommendation: Do not focus only on the last point; a sustained downward trend is often more important than a single temporary dip.
SQL Stats
- Description: Groups
Batch Requests, compilations, recompilations,logins,logouts, and blocked processes to summarize SQL engine workload. - Panel type: timeseries
- Units: Operations per second
Practical recommendation: If SQL Compilations/sec grows too much relative to Batch Requests/sec, review parameterization, plan reuse, and statistics.
Access Methods
- Description: Measures how SQL Server accesses data through index searches, scans, page splits, and creation of
workfilesorworktables. - Panel type: timeseries
- Units: Operations per second
Practical recommendation: If Full Scans/sec or Page Splits/sec dominate, review indexes, fill factor, and queries that do not filter efficiently.
Replica/Mirroring Statistics
- Description: Series of replica traffic and log activity metrics used to observe send, receive, and redo behavior.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: If send and receive rates stop matching, review network latency, redo backlog, and general availability group health.
Buffer Manager
- Description: Brings together reads, writes,
readahead,lazy writes,checkpoint pages,free list stalls, and other buffer manager counters. - Panel type: timeseries
- Units: Buffer pool activity
Practical recommendation: Correlate increases in Page reads/sec or Free list stalls/sec with PLE drops to confirm real pressure on memory and disk.
Wait Stats
- Description: Shows accumulated wait time for several relevant wait types. It helps identify which resource family is limiting performance.
- Panel type: timeseries
- Units: Milliseconds
Practical recommendation: Focus the investigation on the dominant wait and its context; not every high wait is a problem by itself.
TempDB Wait Stats
- Description: Evolution of the value associated with
TempDB PageLatch, useful for detecting internal contention intempdb. - Panel type: timeseries
Thresholds
| Value | Color | Description |
|---|---|---|
| Between 0 and 5 | There is noticeable tempdb contention. | |
| > 5 | Contention is high enough to require correction. |
Practical recommendation: If this grows repeatedly, review the number and size of tempdb files, temp table usage, and heavy concurrent operations.
Log Flushes/sec
- Description: Number of log writes per second. It reflects how often transactions are forcing changes to durable storage.
- Panel type: timeseries
- Units: Operations per second
Practical recommendation: If flushes are high together with log latency, review log storage, transaction size, and application commit patterns.
Databases Activity
- Description: Combines transactions, writes,
deadlocks, errors, and lock-related waits to summarize database-level activity and concurrency. - Panel type: timeseries
- Units: Operations per second
Practical recommendation: If Lock Waits, Lock Timeouts, or Deadlocks grow, analyze access order, indexes, and transaction duration.
Transaction Delay
- Description: Average wait time to execute transactions. It is a good indicator of internal friction before useful work is completed.
- Panel type: timeseries
- Units: Milliseconds
Practical recommendation: If delay rises, review blocking, I/O pressure, and queries with large grants or high waits.
Requests completed/sec
- Description: Number of requests completed per second. It measures the effective work rate of the engine.
- Panel type: timeseries
- Units: Requests per second
Practical recommendation: Read this together with CPU and waits; lower throughput under the same user load usually points to internal degradation.
Free Space in Tempdb
- Description: Time evolution of free space in
tempdb. It helps determine whether pressure is temporary or sustained. - Panel type: timeseries
- Units: Free space
Practical recommendation: If the trend keeps falling for hours, act before available margin is exhausted and space errors appear.
User Connections
- Description: Second time-based view of user connections, useful to observe session volume evolution in more detail.
- Panel type: timeseries
- Units: Connections
Practical recommendation: Compare this pattern with business windows and alerts to tell expected load from unusual behavior.
Memory Clerk Buffer Pool
- Description: Time evolution of memory occupied by the buffer pool. It shows how the main cache grows or shrinks over time.
- Panel type: timeseries
- Units: Memory
Practical recommendation: If the buffer pool does not grow despite workload and available RAM, review memory configuration and external host pressure.
Memory Clerks Sizes
- Description: Time evolution of SQL Server memory clerks. It is useful to spot which components accumulate memory over time.
- Panel type: timeseries
- Units: Memory
Practical recommendation: If one clerk grows disproportionately, validate it against sys.dm_os_memory_clerks to identify the real consumer.
Buffer Pool By Database
- Description: Shows which databases occupy the most buffer pool over time and how their relative weight changes.
- Panel type: timeseries
- Units: Memory
Practical recommendation: If one database monopolizes cache, confirm whether it matches expected workload or inefficient queries evicting other pages.
Errors/sec
- Description: Time-based SQL Server error counter. It helps show whether incidents are isolated or sustained.
- Panel type: timeseries
- Units: Errors per second
Practical recommendation: Correlate spikes with deployments, jobs, maintenance, or network changes to reach the root cause faster.
Memory break down
View of memory consumption broken down by instance or category returned by the data source.
Used memory by Instance
- Description: Time series of memory usage by instance or reported memory group. It helps distinguish how consumption is distributed over time.
- Panel type: timeseries
- Units: Memory
Practical recommendation: Look for abnormal growth and match it with workload changes, plan cache behavior, or complex query activity.
Database Size & I/O
Tracking of database size together with read and write activity on data and log files.
Data File Size by Database
- Description: Time evolution of data file size by database. It helps detect steady growth or abrupt jumps.
- Panel type: timeseries
- Units: Data space
Practical recommendation: If one database grows above its normal pattern, review pending purges, index growth, history retention, or bulk loads.
Log File Size by Database
- Description: Time evolution of log file size by database. It is useful to confirm whether log growth is controlled.
- Panel type: timeseries
- Units: Log space
Practical recommendation: If a log only grows and does not stabilize, review log backup strategy, open transactions, and maintenance jobs.
IO/sec
- Description: Groups reads, writes, and throttled I/O operations per second. It gives a quick picture of storage pressure.
- Panel type: timeseries
- Units: Operations per second
Practical recommendation: If throttled operations increase, confirm whether storage is applying throttling or workload exceeded expected capacity.
DATA | Read Throughput
- Description: Read transfer rate on data files by database. It shows which databases consume the most read bandwidth.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: Repeated peaks in one database usually justify reviewing indexes, cache behavior, and query patterns.
LOG | Read Throughput
- Description: Read transfer rate on log files. Its activity is usually low compared with data-file reads.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: If log reads are unusually high, validate restores, replicas, auditing, or processes that rely heavily on the log.
DATA | Write Throughput
- Description: Write transfer rate on data files by database. It helps detect databases with high modification activity.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: If one database concentrates most writes, confirm whether it matches ETL, bulk load, or index maintenance activity.
LOG | Write Throughput
- Description: Write transfer rate on log files by database. It directly reflects transactional activity that must be persisted.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: If this rises without matching data-file throughput, review highly transactional operations or overly frequent commits.
Database Latency
Read and write latency split between data files and log files so storage bottlenecks can be isolated precisely.
DATA | Read Latency (ms)
- Description: Read time in milliseconds on data files by database. It is a direct storage-health signal for read operations.
- Panel type: timeseries
- Units: Milliseconds
Practical recommendation: If latency stays high, compare it with throughput and physical reads to decide whether cache is insufficient or disks are underperforming.
LOG | Read Latency (ms)
- Description: Read time in milliseconds on log files. It is usually low and stable except in specific scenarios.
- Panel type: timeseries
- Units: Milliseconds
Practical recommendation: Sustained increases can point to saturated shared storage or heavy recovery and replica activity.
DATA | Write Latency (ms)
- Description: Write time in milliseconds on data files. It affects modification-heavy workloads and maintenance operations.
- Panel type: timeseries
- Units: Milliseconds
Practical recommendation: If write latency rises together with checkpoints or page writes, review performance of the data volume.
LOG | Write Latency (ms)
- Description: Write time in milliseconds on log files. It is critical for transaction commit time.
- Panel type: timeseries
- Units: Milliseconds
Practical recommendation: If this latency is high, prioritize investigation of log storage because it directly affects transaction commits.
Availability Replica
Panels focused on replica traffic, send and receive rate, and synchronization lag against the primary node.
OUT | Bytes Sent to Replica/sec
- Description: Rate of bytes sent to replicas per second. It measures outgoing traffic generated by the primary replica.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: If send load grows sharply, watch bandwidth, network compression, and latency between nodes.
IN | Bytes Received from Replica/sec
- Description: Rate of bytes received from replicas per second. It helps validate incoming flow in the availability group context.
- Panel type: timeseries
- Units: Bytes per second
Practical recommendation: Compare this panel with the send panel to detect prolonged asymmetry that may anticipate queues or sync lag.
Sends to Replica/sec
- Description: Number of send operations to replicas per second. It complements throughput by showing frequency, not only volume.
- Panel type: timeseries
- Units: Operations per second
Practical recommendation: If there are many small send operations, review transaction pattern and network overhead between nodes.
Receives from Replica/sec
- Description: Number of receive operations from replicas per second. It helps explain the rhythm of exchange between nodes.
- Panel type: timeseries
- Units: Operations per second
Practical recommendation: Very irregular receive behavior can reveal intermittent connectivity problems or environment saturation.
Data to Sync(Check in Primary node)
- Description: Volume of data still pending synchronization as seen from the primary node. It is useful to detect accumulated lag on secondary replicas.
- Panel type: timeseries
- Units: Pending data
Practical recommendation: If the pending queue grows and does not come back down, review transport, redo rate, and secondary replica capacity.
Lag Time Synchronization (Check in Primary node)
- Description: Synchronization lag time between the primary node and replicas. It shows whether delay is temporary or persistent.
- Panel type: timeseries
- Units: Seconds
Practical recommendation: If lag keeps increasing, review network latency, log generation rate, and replica health before it impacts RPO or secondary reads.
