Free SQL Server Performance Monitoring

SQL Server Performance Monitor

Stop paying thousands per server per year for monitoring tools built by people
who’ve never tuned a query in their lives.

This one’s free, open source, and built by someone who has.

30+ T-SQL collectors. Real-time alerts. Built-in MCP server for AI analysis.
Your data never leaves your network.

SQL Server 2016–2025 • Azure SQL MI • AWS RDS • Azure SQL DB (Lite only) • MIT License • Signed binaries

Dashboard landing page with server health cards

Need Expert Help?

Darling Data offers SQL Server performance consulting and training.

Learn More

Built for Working DBAs

Not everyone needs enterprise-scale monitoring. If you manage SQL Servers
and want real insight without the complexity, this is for you.

👤

Solo DBAs & Small Teams

You’re responsible for a handful of SQL Servers. You need visibility into what’s happening, but you don’t need a platform that costs more than your servers.

💼

Consultants & Contractors

Drop it on a client’s server, collect data, and diagnose their problems with real evidence. Take it with you when you leave.

💻

Developers Who Care

Your app is slow and you suspect the database. Install this, run your workload, and see exactly which queries are killing performance.

This Might Not Be For You If…

You need a multi-tenant SaaS platform with role-based access, custom dashboards per team,
and a vendor-managed backend. That’s a different tool. This is for people who want simple, direct access
to their performance data without the enterprise overhead. (Tray, email, and webhook alerts to Slack, Teams,
or PagerDuty are all built in.)

If you need a support agreement and vendor documentation for compliance,
there’s a subscription for that.



What People Are Saying

“You guys make us DBAs look like absolute rockstars. I’m over here getting showered with praise, and all I do is use your scripts and follow your advice.”

“replaced SentryOne and had it running in 10 minutes”

“It helped a lot to zone in on CPU starvation from the hypervisor on which the VM runs. IT team currently investigating the host configuration. Very impressed with the tool.”

Choose Your Edition

Full Dashboard

Server-Installed Monitoring

Installs a PerformanceMonitor database on each server you want to monitor.
32 T-SQL collectors run via SQL Agent. Dashboard connects to view all your servers.

Best For
Production servers where you want continuous 24/7 collection with maximum data fidelity

Download Full Edition

Lite Edition

Standalone Monitoring

Self-contained app with embedded DuckDB. Connect directly to any SQL Server
without installing anything on the target. Perfect for quick triage.

Best For
Quick performance triage, Azure SQL, or environments where you can’t install on the server

Download Lite Edition

Feature Full Dashboard Lite Edition
Installation on SQL Server Required (database + jobs) Not required
Collectors 32 (via SQL Agent) 24 (in-app)
Data Storage SQL Server (on each target) DuckDB + Parquet archival (local)
Azure SQL Database Not supported ✓ Supported
Alerts (tray + email + webhooks) ✓ 8 alert types ✓ 8 alert types
Email Alert Detail ✓ Query text, blocking chains, deadlock graphs ✓ Query text, blocking chains, deadlock graphs
Agent Job Monitoring ✓ Duration vs avg/p95 ✓ Duration vs avg/p95
Execution Plans Collected and stored Download on demand
Graphical Plan Viewer ✓ Built-in, 30-rule PlanAnalyzer, standalone .sqlplan mode ✓ Built-in, 30-rule PlanAnalyzer, standalone .sqlplan mode
Themes Dark and light Dark and light
FinOps / Cost Optimization ✓ Utilization, storage growth, idle DB detection, index analysis
MCP Server (AI) ✓ 63 tools ✓ 52 tools
Community Tools ✓ sp_WhoIsActive, sp_BlitzLock, sp_HealthParser, sp_HumanEventsBlockViewer Not needed
Portability Server-bound Single executable
Ideal Use Case 24/7 production monitoring Quick triage & Azure

Full Dashboard with charts

Full Dashboard — wait stats, CPU trends, blocking chains

Lite Edition main window

Lite Edition — standalone monitoring with sidebar

Query Your Data Directly

With the Full Edition, everything lands in SQL Server tables you control.
No APIs. No export wizards. Open SSMS and write a query.

Reporting views are included for common questions, but you’re not limited to them.
Join the collection tables however you want. Build Power BI reports. Export to Excel.
It’s just tables.

— What were my top waits yesterday?
SELECT TOP (10)
wait_type,
waiting_tasks_count,
wait_time_ms,
avg_wait_ms
FROM PerformanceMonitor.collect.wait_stats
WHERE collection_time >= DATEADD(DAY, -1, GETDATE())
ORDER BY wait_time_ms DESC;

Plan Analysis

Graphical Plan Viewer Built-In

Native ShowPlan rendering — no more squinting at SSMS in a separate window.
Click any collected query, procedure, or Query Store plan and see it instantly.

The built-in PlanAnalyzer applies 30 rules to surface the things you’d actually look for:
implicit conversions, missing indexes with usable predicates, residual predicates, spills, parameter sensitivity,
expensive operators. Operator-level cost breakdown next to the plan diagram.

Need to look at a plan from somewhere else? Drag a .sqlplan file
onto the window, paste plan XML directly, or open the viewer in standalone mode — no server connection required.

Graphical plan viewer with missing index suggestions and operator analysis

Plan viewer with PlanAnalyzer findings and operator cost breakdown

AI Integration

MCP Server Built-In

Both editions include a Model Context Protocol server, letting AI assistants
like Claude analyze your SQL Server performance data directly.

Wait Analysis
Query Performance
Resource Metrics
Blocking & Deadlocks
Memory Stats
CPU Utilization

MCP server AI-powered performance analysis

Claude analyzing blocking and deadlock patterns via the MCP server

Alerts & Notifications

Both editions include a real-time alert engine that monitors for performance issues
independently of which tab is open — even when minimized to the system tray.

What Gets Monitored

  • Blocking — longest blocked session exceeds threshold (default 30s Full, 5s Lite)
  • Deadlocks — new deadlocks detected since the last check
  • Poison waits — THREADPOOL, RESOURCE_SEMAPHORE, RESOURCE_SEMAPHORE_QUERY_COMPILE exceed average ms-per-wait threshold
  • Long-running queries — any query exceeds elapsed-time threshold (default 5 minutes)
  • TempDB space — usage exceeds percentage threshold (default 80%)
  • Long-running agent jobs — current duration exceeds a multiple of historical average (default 3×)
  • High CPU — total CPU exceeds threshold (default 90% Full, 80% Lite)
  • Server unreachable — a monitored server goes offline or comes back online

How You Get Notified

  • System tray — balloon notifications with configurable per-metric cooldown (default 5 minutes)
  • Email (SMTP) — styled HTML with query text, blocking chains, and deadlock graph XML attachments
  • Webhooks — HTTP POST for Slack, Teams, PagerDuty, or any external alerting system
  • Resolved alerts — automatic “Cleared” notification when a condition resolves
  • Mute rules — suppress recurring alerts by server, metric, database, query, wait type, or job (with optional expiration)
  • Alert details — right-click any alert for query text, session info, wait breakdowns, blocking chains, and deadlock participants
  • Silencing — right-click any server tab to acknowledge or silence alerts
Alert notification for blocking detected

Key Features

📊

Smart Delta Collection

Collectors compute deltas automatically, showing actual work done between snapshots instead of cumulative totals.

🖥️

Modern WPF Dashboard

Clean, responsive interface with filterable grids, interactive charts, and full dark and light themes.

🔒

Secure by Default

Credentials stored in Windows Credential Manager with DPAPI encryption. SQL connections default to mandatory TLS. Never stores passwords in config files.

Lightweight, Tunable Collection

All queries use READ UNCOMMITTED for minimal impact. Named schedule presets (Off, Aggressive, Balanced, Low-Impact) let you set quiet hours with a pair of Agent jobs — no code.

📁

No Cloud Required

Full Edition stores data on each monitored server. Lite Edition keeps everything in local DuckDB files. Nothing leaves your network.

🔔

Real-Time Alerts

Eight alert types across tray, SMTP email, and webhooks (Slack, Teams, PagerDuty). Emails include query text, blocking chains, and XML attachments. Mute rules for noisy alerts.

📋

Graphical Plan Viewer

Native ShowPlan rendering with a 30-rule PlanAnalyzer, operator-level cost breakdown, and a standalone mode for opening, pasting, or dragging in .sqlplan files without a server connection.

💰

FinOps & Cost Optimization

Lite Edition surfaces utilization vs. provisioning, storage growth, idle databases, index analysis via sp_IndexCleanup, and concrete cost-cutting recommendations — enterprise feature audits, right-sizing, compression savings.

Signed Binaries

Every release is digitally signed via SignPath. No SmartScreen warnings, no “unknown publisher” prompts when your security team locks down execution.

Security & Trust

You’re giving a monitoring tool access to your SQL Servers. Here’s exactly what it does and doesn’t do.

What It Does

  • Windows Credential Manager — passwords stored with DPAPI encryption, never in config files or plain text
  • Mandatory TLS — SQL connections default to encrypted with certificate validation
  • Parameterized queries — every SQL query uses parameters, zero string concatenation
  • READ UNCOMMITTED — all monitoring queries run at this isolation level to avoid blocking your production workload
  • Open source — every line of code is on GitHub for you to audit

What It Doesn’t Do

  • No telemetry — zero analytics, tracking, or usage reporting of any kind
  • No phone-home — the app never contacts any external server on its own
  • No cloud dependency — everything stays on your machine and your SQL Servers
  • No unsigned binaries — every release is digitally signed by SignPath, so SmartScreen and code-execution policies don’t fight you
  • No hidden network calls — the only outbound traffic is the SMTP and webhook endpoints you configure yourself

What Gets Collected

Full Edition: 32 T-SQL collectors via SQL Agent. Lite Edition: 24 collectors running in the app.

Query Performance

  • Query stats from plan cache
  • Procedure stats
  • Query Store metrics
  • Active query snapshots
  • Waiting tasks

Wait & Resource Stats

  • Wait statistics (delta)
  • Latch statistics
  • Spinlock statistics
  • CPU utilization
  • Perfmon counters

Memory & I/O

  • Memory grants
  • Memory clerks
  • Buffer pool pressure
  • File I/O latency
  • TempDB usage

Blocking & Events

  • Blocked process reports
  • Deadlock graphs
  • Ring buffer events
  • Default trace analysis
  • System health events

Getting Started

Full Dashboard Setup

  1. 1
    Run the GUI or CLI Installer with server connection details
  2. 2
    Click Install — creates the PerformanceMonitor database and Agent jobs
  3. 3
    Repeat for each server you want to monitor
  4. 4
    Launch the Dashboard and add your servers to view collected data

Lite Edition Setup

  1. 1
    Download and extract the Lite Edition ZIP
  2. 2
    Run PerformanceMonitorLite.exe
  3. 3
    Click “Add Server” and enter your connection details
  4. 4
    Data collection starts immediately — that’s it!

Also Supported

  • Microsoft Entra ID (MFA) authentication in the installer
  • Air-gapped installs — drop community scripts in a local folder, no GitHub needed
  • Always On Availability Groups — ReadOnlyIntent and MultiSubnetFailover for routing to readable secondaries
  • Azure SQL Managed Instance & AWS RDS — auto-detected, incompatible collectors disabled automatically
  • CSV export — right-click any grid
  • Timezone display — server time, local time, or UTC, your choice

Need Support or Compliance Coverage?

Performance Monitor is free, and it’s staying free. But “free and open source” doesn’t always
satisfy compliance teams, procurement departments, or auditors who need a vendor agreement
and a support contact on file before anything goes into production.

Supported

$500
/year
  • ✓  Unlimited instances — no auditing, no counting
  • ✓  Email support, two-business-day response
  • ✓  Guaranteed compatibility updates for new SQL Server versions and CUs
  • ✓  Invoices and support agreement for compliance
  • ✓  Priority feature requests


Get the Supported Subscription

Priority

$2,500
/year
  • ✓  Everything in Supported
  • ✓  Next-business-day email response
  • ✓  Quarterly live Q&A sessions
  • ✓  Early access to new features
  • ✓  Direct input on the roadmap


Get the Priority Subscription

Both tiers cost less than what most monitoring vendors charge for a single instance. These cover all of yours.
The software is identical for everyone — no locked features, no premium dashboards.
If you don’t need the vendor agreement, keep using it for free. It works exactly the same.

Support the Project

GitHub Sponsors

If this tool helps you, consider sponsoring development on GitHub.

Become a Sponsor

Need Expert Help?

Darling Data offers SQL Server performance consulting and training.

Learn More

Ready to Monitor?

Download either edition and start understanding your SQL Server performance today.

Download Now