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+ • Azure SQL MI • AWS RDS • Azure SQL DB (Lite only) • MIT License

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 to monitor 50+ servers from a central console or require integrations with PagerDuty or Slack.
That’s a different tool. This is for people who want simple, direct access to their performance data
without the enterprise overhead. (It does have email alerts, though.)

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.
30 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 30 (via SQL Agent) 20 (in-app)
Data Storage SQL Server (on each target) DuckDB + Parquet archival (local)
Azure SQL Database Not supported ✓ Supported
Alerts (tray + email) ✓ Blocking, deadlocks, CPU ✓ Blocking, deadlocks, CPU
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
MCP Server (AI) ✓ 27 tools ✓ 31 tools
Community Tools ✓ sp_WhoIsActive, sp_BlitzLock 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;

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 — fires when the longest blocked session exceeds your threshold (default 30s Full, 5s Lite)
  • Deadlocks — fires when new deadlocks are detected since the last check
  • High CPU — fires when total CPU exceeds your threshold (default 90% Full, 80% Lite)
  • Connection changes — fires when a server goes offline or comes back online

How You Get Notified

  • System tray — balloon notifications with 5-minute per-metric cooldown
  • Email (SMTP) — styled HTML emails with query text, blocking chains, and deadlock graph XML attachments
  • Resolved alerts — automatic “Cleared” notification when a condition resolves
  • 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 dark theme support.

🔒

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 Collection

All queries use READ UNCOMMITTED and are optimized for minimal impact on your production servers.

📁

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

Tray notifications and SMTP email alerts for blocking, deadlocks, and CPU spikes. Emails include query text and XML attachments.

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 auto-updates — you choose when to update, nothing runs without your knowledge
  • No hidden network calls — the only outbound traffic is SMTP email alerts you configure yourself

What Gets Collected

Full Edition: 30 T-SQL collectors via SQL Agent. Lite Edition: 20 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!

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