Start with what SQL Server already gives you: Query Store (on by default for new databases from SQL Server 2022) for query and plan history, the system_health Extended Events session for deadlocks and severe errors, and DMVs such as sys.dm_os_wait_stats, with the free First Responder Kit and sp_WhoIsActive scripts on top. When you need continuous history, alerting and an estate view, buy a dedicated monitor: Redgate Monitor if you also look after PostgreSQL, Oracle, MySQL or MongoDB, SolarWinds SQL Sentry or Idera SQL Diagnostic Manager for SQL Server depth, SolarWinds DPA for wait-time analysis across several engines. If developers already live in Datadog, its Database Monitoring links queries to traces. On Azure SQL, try database watcher (preview); on RDS for SQL Server, CloudWatch Database Insights.
SQL Server exposes more monitoring data than most engines, and every commercial tool on this page is built on it. Dynamic management views (DMVs) give live and cumulative state: waits, sessions and requests, cached query statistics, file I/O, memory. Query Store, available since SQL Server 2016 and enabled by default in READ_WRITE mode for new databases from SQL Server 2022 (and in Azure SQL Database and Managed Instance), keeps a per-database history of queries, plans, runtime statistics and, from SQL Server 2017, wait statistics, and can force a previous plan. Extended Events is the event tracing framework; its built-in system_health session starts automatically and records deadlock graphs, errors of severity 20 or higher, long lock and latch waits and other diagnostics.
What the built-ins lack is continuous collection across many instances, long retention outside the monitored server, baselines, alert routing and a single view of an estate. That gap is what the dedicated tools sell. For the cross-engine picture see the best database monitoring tools; to tune what you find, see the performance tuning lessons, SQL indexes and the deadlock error 1205 page.
Quick picks
Built in, on by default for new databases from SQL Server 2022, with plan history and plan forcing.
MIT and GPLv3 stored procedures for health checks, plan cache analysis, deadlocks and live activity.
Agentless SQL Server monitoring that also covers PostgreSQL, Oracle, MySQL and MongoDB, self-hosted or SaaS.
SQL Server, Azure SQL and SSAS monitoring with deadlock, blocking, TempDB and job calendar views.
Managed collection from more than 70 DMVs and catalog views, with no charge per monitored database (preview).
How we chose
We considered SQL Server's built-in tools (Query Store, Extended Events, DMVs and Activity Monitor in SSMS), free community scripts (First Responder Kit, sp_WhoIsActive), dedicated monitors (Redgate Monitor, SolarWinds SQL Sentry, SolarWinds Database Performance Analyzer, Idera SQL Diagnostic Manager, Quest Spotlight on SQL Server Enterprise), observability platforms (Datadog Database Monitoring, New Relic, Dynatrace, Zabbix templates, Prometheus exporters) and the cloud tools for managed SQL Server (Azure SQL database watcher, CloudWatch Database Insights, Cloud SQL Query Insights).
To be listed, a product had to support SQL Server in October 2026 and document what it collects and how it is deployed and licensed. Quest Spotlight on SQL Server Enterprise is still supported by Quest, but we could not read enough of its current product pages to verify its details, so it is not an entry. New Relic and Dynatrace are covered in the hub guide; Zabbix and Prometheus in the open source guide.
The order is not a ranking: the built-in baseline comes first, then free scripts, dedicated monitors, a platform option and cloud tools. Prices are quoted only where the vendor publishes them, as one dated example.
At a glance
| Tool | Type | Engines | Deployment | Pricing model | Main trade-off |
|---|---|---|---|---|---|
| Query Store | Built in | SQL Server 2016+, Azure SQL, Fabric SQL database | Per database, inside the engine | Included | Per database; no estate view or alert routing |
| Extended Events | Built in | SQL Server, Azure SQL Managed Instance (Azure SQL Database: own sessions) | Inside the engine | Included | Raw events; analysis is up to you |
| DMVs | Built in | SQL Server, Azure SQL | Inside the engine | Included | Mostly cumulative or point in time; no history |
| Activity Monitor (SSMS) | Built in | SQL Server | Windows client (SSMS) | Free | Live view only; no history or alerts |
| First Responder Kit and sp_WhoIsActive | Free scripts | SQL Server, RDS; partial on Azure SQL Database | Stored procedures you install | Free (MIT; GPLv3) | On-demand diagnosis, not monitoring |
| Redgate Monitor | Dedicated monitor | SQL Server, PostgreSQL, Oracle, MySQL, MongoDB | Self-hosted (agentless) or SaaS | Per server licence, subscription | No public prices |
| SolarWinds SQL Sentry | Dedicated monitor | SQL Server, Azure SQL, SSAS | Self-hosted, agentless; Windows service plus SQL Server repository | Per monitored target, subscription | Repository and services to maintain |
| SolarWinds DPA | Dedicated monitor (wait-time analysis) | SQL Server, Oracle, MySQL, MariaDB, PostgreSQL, Db2 and others | Self-hosted, agentless | Per instance, subscription | Less SQL Server estate detail than SQL Sentry (editorial) |
| Idera SQL Diagnostic Manager | Dedicated monitor | SQL Server, Azure SQL, RDS for SQL Server | Self-hosted, agentless | Per instance, subscription | SQL Server only; no public prices |
| Datadog Database Monitoring | Observability platform module | SQL Server and seven other engines | SaaS; Datadog Agent | Per database host per month | Fewer DBA estate features; SaaS only |
| Azure SQL database watcher | Cloud-native (preview) | Azure SQL Database, Azure SQL Managed Instance | Azure managed | Watcher free; pay for data store | Preview; Azure SQL only |
| CloudWatch Database Insights | Cloud-native | RDS for SQL Server and other RDS and Aurora engines | AWS managed | Standard free to 7 days; Advanced paid | AWS only; plans need Advanced |
Query Store
Query Store captures a history of queries, their plans, runtime statistics and (from SQL Server 2017) wait statistics per database, aggregated in time windows. Microsoft states it is enabled by default in READ_WRITE mode for new databases from SQL Server 2022 and for new Azure SQL Database and Managed Instance databases, but not on SQL Server 2016 to 2019. SSMS has built-in reports such as Regressed Queries and Query Wait Statistics, and you can force a previous plan without changing code. SQL Server 2025 adds Query Store for secondary replicas.
Query it directly from its catalog views (example in the closing section), or let a monitoring tool read it.
- Per database: there is no cross-instance view, and it cannot be enabled for master or tempdb.
- No alerting; you must look at it or have a tool read it.
- Needs sizing and capture settings tuned to the workload, as Microsoft's best practice guidance describes.
Extended Events and the system_health session
Extended Events is SQL Server's tracing framework. The system_health session starts with the engine and records, among other things, every detected deadlock with its graph, sessions hitting errors of severity 20 or higher or memory errors, lock waits over 30 seconds and latch waits over 15 seconds. It writes to a ring buffer and to event files (5 MB by 4 files, or 100 MB by 10 files on Standard and Enterprise). You can create your own sessions for slow queries or specific waits, and view the data in SSMS.
Azure SQL Database has no built-in system_health session; you create sessions that write to Azure Storage. See the error 1205 deadlock page for working with deadlock graphs.
- Data is raw XML events; turning it into trends or alerts is your job.
- system_health files roll over, so older events are lost unless you copy them.
- Badly scoped custom sessions can capture far more than intended (editorial).
DMVs and Activity Monitor
Dynamic management views such as sys.dm_os_wait_stats, sys.dm_exec_requests, sys.dm_exec_sessions and sys.dm_exec_query_stats are the raw material of every monitor. sys.dm_os_wait_stats, for example, is cumulative since the last restart or since it was cleared with DBCC SQLPERF, and needs VIEW SERVER PERFORMANCE STATE on SQL Server 2022 and later (VIEW SERVER STATE on earlier versions).
Activity Monitor in SSMS (Ctrl+Alt+A) presents some of them as Overview, Processes, Resource Waits, Data File I/O, Recent Expensive Queries and Active Expensive Queries panes. It needs VIEW SERVER STATE and shows only what is happening while it is open.
- Cumulative counters need snapshots and differences to show what changed.
- Nothing is kept after a restart, and there is no alerting.
- Activity Monitor is a live view in a Windows client only.
First Responder Kit and sp_WhoIsActive
The SQL Server First Responder Kit (MIT licence) is a set of stored procedures: sp_Blitz for health checks, sp_BlitzFirst for what is happening now, sp_BlitzCache for expensive plans in cache, sp_BlitzIndex for index analysis, sp_BlitzWho for running queries and sp_BlitzLock for deadlocks. It supports the SQL Server versions Microsoft supports, on Windows and Linux and on Amazon RDS, with limited support for Azure SQL Database.
sp_WhoIsActive (GPLv3) is a single procedure that shows active sessions with their SQL, waits, blocking and resource use. Both are on-demand tools: some teams schedule them to log to tables, which turns them into a basic home-made monitor.
- Not monitoring: no continuous collection, dashboards or alerts unless you build them.
- Installed into your instances, which some change-control policies restrict.
- Community support only.
Redgate Monitor
Redgate Monitor (formerly SQL Monitor; 14.34.0 when checked) lists SQL Server, PostgreSQL, Oracle, MySQL and MongoDB support and comes in Standard and Enterprise editions, self-hosted or SaaS. Self-hosted, it is agentless: a Base Monitor connects through WMI or SSH and T-SQL and writes to a SQL Server or PostgreSQL with TimescaleDB repository. It covers performance and query analysis, alerting (with Splunk, ServiceNow and webhook integrations) and estate information such as versions, patches, disk use and backups.
Licensing is per server, with one licence covering five Azure SQL databases according to Redgate; prices are by quote. See Redgate Monitor vs SQL Sentry, Redgate Monitor vs SolarWinds DPA and Redgate alternatives.
- No public prices.
- Self-hosted needs a Base Monitor host and repository database.
- Non-SQL Server engines may not have every SQL Server feature; check in a trial (editorial).
SolarWinds SQL Sentry
SolarWinds SQL Sentry (from the SentryOne acquisition) monitors SQL Server (version 2026.3 supports SQL Server 2017 to 2025), SQL Server on Amazon RDS and EC2, Azure SQL Database, Azure SQL Managed Instance and Analysis Services. SolarWinds lists deadlock analysis, blocking, TempDB monitoring, query and index analysis, an event calendar for jobs and storage forecasting.
Its documentation describes an agentless design: monitoring services (one for roughly 50 to 100 targets) poll the servers and write to a SQL Server repository, read through a Windows client or optional portal. It is licensed per monitored target; from 2024.4 the Database Self Hosted licence can be shared with DPA. See SQL Sentry vs SolarWinds DPA and SQL Sentry alternatives.
- SQL Server family only.
- Windows monitoring services and a SQL Server repository to size and maintain.
- No public prices.
SolarWinds Database Performance Analyzer
DPA focuses on wait-time analysis: which statements wait, on what, and for how long. Beyond SQL Server and Azure SQL it supports Oracle, MySQL, MariaDB, PostgreSQL, SAP HANA, IBM Db2 and SAP ASE, agentlessly, with anomaly detection, tuning advisors and VMware correlation. Licences (Database Self-Hosted, and a DBaaS variant for services such as Azure SQL Database) float between instances.
See Datadog vs SolarWinds DPA and SolarWinds DPA alternatives.
- No public prices.
- Less SQL Server estate detail (jobs, inventory) than SQL Server specialists (editorial).
- Overlaps with SQL Sentry, so SolarWinds customers need to choose between them.
Idera SQL Diagnostic Manager
Idera describes SQL Diagnostic Manager as agentless monitoring for SQL Server on premises, Azure SQL Database and Managed Instance, Amazon RDS for SQL Server, Google Cloud and VMware or Hyper-V hosts. It lists adaptive baselines, wait statistics by dimension, deadlock visualisation, live sessions, forecasting and query tuning. Pricing is per instance on subscription with no per-gigabyte ingest fees, and the customer owns the monitoring repository.
- SQL Server only.
- No public prices.
- Self-hosted infrastructure to maintain.
Datadog Database Monitoring
Datadog Database Monitoring supports self-hosted SQL Server and managed services such as Amazon RDS and Azure, collecting normalised query metrics, query samples and explain plans through the Datadog Agent, alongside seven other engines. As listed on Datadog's pricing list on 7 October 2026, it costs USD 70 per database host per month billed annually (USD 84 on demand).
See Datadog vs Redgate Monitor and database monitoring vs APM.
- SaaS only.
- Fewer SQL Server DBA features (Agent jobs, backups, estate inventory) than dedicated monitors (editorial).
- Cost is per host on top of other Datadog products.
Azure SQL database watcher
Database watcher, in preview when checked, collects from more than 70 DMVs and catalog views into Azure Data Explorer or Real-Time Analytics in Fabric, with estate and per-resource dashboards (top queries, waits, sessions, index metadata, SQL Agent jobs on Managed Instance, backups) and Azure Monitor alert templates. Microsoft charges nothing for the watcher, dashboards or per monitored database; you pay for the data store and alerts. Up to 100 targets per watcher.
See Azure SQL Database vs SQL Server.
- Preview, with no SLA.
- Does not monitor SQL Server on your own machines or VMs.
- Alerts are not available with a free Azure Data Explorer cluster or a Fabric data store.
Amazon CloudWatch Database Insights
Database Insights replaced Performance Insights, which AWS states reached end of life on 31 July 2026. For RDS for SQL Server it shows database load by waits, SQL, hosts and users; Standard mode is on by default with 7 days free, and Advanced mode adds per-query statistics, execution plan analysis for RDS for SQL Server, slow query analysis and fleet views. Google offers a similar free tool, Query Insights, for Cloud SQL for SQL Server.
- AWS only.
- Execution plans require Advanced mode.
- Less SQL Server-specific depth than a dedicated monitor (editorial).
Start with the baseline queries
Before buying a tool, run the queries it would run. This T-SQL (SQL Server 2016 and later, Azure SQL) lists the top cumulative waits since the last restart, excluding a few idle waits. Treat it as a starting point: real scripts filter many more benign wait types, and you compare two snapshots to see what changed.
-- T-SQL: top waits since restart (needs VIEW SERVER PERFORMANCE STATE on 2022+)
SELECT TOP (10)
wait_type,
waiting_tasks_count,
wait_time_ms,
signal_wait_time_ms
FROM sys.dm_os_wait_stats
WHERE waiting_tasks_count > 0
AND wait_type NOT IN (N'SLEEP_TASK', N'LAZYWRITER_SLEEP', N'BROKER_TASK_STOP',
N'XE_TIMER_EVENT', N'REQUEST_FOR_DEADLOCK_SEARCH',
N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', N'CHECKPOINT_QUEUE')
ORDER BY wait_time_ms DESC;And this one reads Query Store in the current database for the plans with the highest average duration (avg_duration is in microseconds, and each row covers one plan in one collection interval):
-- T-SQL: slowest plans recorded by Query Store
SELECT TOP (10)
q.query_id,
p.plan_id,
rs.count_executions,
rs.avg_duration,
qt.query_sql_text
FROM sys.query_store_runtime_stats AS rs
JOIN sys.query_store_plan AS p ON p.plan_id = rs.plan_id
JOIN sys.query_store_query AS q ON q.query_id = p.query_id
JOIN sys.query_store_query_text AS qt ON qt.query_text_id = q.query_text_id
ORDER BY rs.avg_duration DESC;If a handful of instances and these queries (plus the First Responder Kit) answer your questions, you may not need a product. Buy one when you need history kept off the server, baselines and alerts that wake the right person, and an estate view: Redgate Monitor for mixed engines and SaaS choice, SQL Sentry or SQL Diagnostic Manager for SQL Server depth, DPA for wait analysis across engines, Datadog when application traces matter most. Trial on your busiest instance and ask each vendor what its collection queries do.
Frequently asked questions
Is Query Store enabled by default?
For new databases from SQL Server 2022 (16.x), yes, in READ_WRITE mode, and for new Azure SQL Database and Managed Instance databases. On SQL Server 2016, 2017 and 2019 you enable it with ALTER DATABASE ... SET QUERY_STORE = ON. It cannot be enabled for master or tempdb.
What is the best free SQL Server monitoring tool?
The built-in set: Query Store, the system_health Extended Events session and DMVs, with the free First Responder Kit (MIT) and sp_WhoIsActive (GPLv3) for diagnosis. For continuous free monitoring, Zabbix has official SQL Server templates and Prometheus can use sql_exporter. See open source database monitoring tools.
Is SQL Sentry the same as SolarWinds DPA?
No. Both are SolarWinds products. SQL Sentry is SQL Server specific (including Azure SQL and SSAS); DPA does wait-time analysis across many engines. Since 2024.4 they share a licence type, so one key can be split between them. See SQL Sentry vs SolarWinds DPA.
Does Activity Monitor keep history?
No. Activity Monitor in SSMS shows live data while it is open (processes, resource waits, file I/O and expensive queries). For history use Query Store or a monitoring tool.
How do I find deadlocks in SQL Server?
The system_health Extended Events session records detected deadlocks with their graphs by default. Most monitoring tools read and display them. See the error 1205 page for causes and fixes.
What do I use to monitor Azure SQL Database?
Query Store is on by default, and Microsoft offers database watcher (in preview) for estate dashboards. Commercial monitors such as SQL Sentry, Redgate Monitor, DPA, SQL Diagnostic Manager and Datadog also support Azure SQL.
Sources
- Monitor performance by using the Query Store (Microsoft Learn)
- Use the system_health session (Microsoft Learn)
- sys.dm_os_wait_stats (Microsoft Learn)
- Open Activity Monitor in SSMS (Microsoft Learn)
- SQL Server First Responder Kit (MIT)
- sp_WhoIsActive (GPLv3)
- Redgate Monitor product page
- Redgate Monitor pricing
- How Redgate Monitor works
- SolarWinds SQL Sentry
- SQL Sentry components and architecture
- SolarWinds Database Performance Analyzer
- DPA licence types
- Idera SQL Diagnostic Manager
- Datadog Database Monitoring documentation
- Datadog pricing list
- Azure SQL database watcher overview
- CloudWatch Database Insights
Checked October 2026.
How we research these guides: our editorial method.