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.

36 collectors. Real-time alerts. A built-in MCP server for AI analysis, now led by Darling, a headless service that watches 5 servers or 500, around the clock.
Your data never leaves your network.

SQL Server 2016–2025 • Azure SQL MI • AWS RDS • Azure SQL DB • MIT License • Signed binaries

Darling web dashboard

Need Expert Help?

Darling Data offers SQL Server performance consulting and training.

Learn More

Built for Working DBAs

One SQL Server or five hundred. You want real insight into what’s happening, without a bloated platform, a per-server tax, or a vendor holding your data.

👤

Solo DBAs & Small Teams

A handful of SQL Servers, or a whole fleet of them. You need visibility into all of them, not a platform that costs more than the servers it watches.

💼

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 want a multi-tenant SaaS platform with a vendor-managed backend, per-seat licensing, and someone else holding your data. That’s a different tool. This runs on your own infrastructure, your data never leaves your network, and there’s no per-server tax.

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

Two editions, one shared brain. Run a whole fleet as a service with Darling, or drop Lite on any box for instant triage.

Flagship • New

Headless Fleet Monitoring

A Windows service with a bundled, self-managing PostgreSQL store collects your whole fleet around the clock, with nothing installed on the servers for its own storage. Browse it in a desktop viewer or a web dashboard, and drive it all from an AI agent over MCP. Scales from 5 servers to 500.

Best For
Production fleets that need continuous, unattended collection, from a handful of servers to hundreds

Download Darling

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, and you take it with you when you leave.

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

Download Lite Edition

Feature Darling Lite Edition
Deployment Headless Windows service Portable executable
Data Storage Managed PostgreSQL + TimescaleDB DuckDB + Parquet archival (local)
Scale 5 servers to 500 A handful, one box
Collectors 36 (shared library) 36 (shared library)
Viewing WPF viewer + web dashboard WPF app
Custom Views (compose your own) ✓ Metrics, charts & notebooks
MCP Server (AI) ✓ Read + write tools ✓ 74 tools
Execution Plans Captured centrally Download on demand
Azure SQL Database ✓ Supported ✓ Supported
Network Loopback default, opt-in LAN (token + CIDR) Local
Alerts Email + webhooks (headless) Tray + email + webhooks
Ideal Use Case 24/7 fleet monitoring Quick triage & Azure

Darling web dashboard

Darling web dashboard — fleet overview and per-server drill-down

Lite Edition main window

Lite Edition — standalone monitoring with sidebar

Query Your Data Directly

Darling keeps everything in a PostgreSQL store you control, and Lite in a local DuckDB file. No APIs, no export wizards, no vendor lake. Point any SQL client at it and query.

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.

— Top waits across the fleet, last 24h (Darling / Postgres)
SELECT server_name, wait_type, sum(wait_time_ms) AS total_ms
FROM collect.wait_stats
WHERE collection_time >= now() – interval ‘1 day’
GROUP BY server_name, wait_type
ORDER BY total_ms DESC LIMIT 10;

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 read your performance data directly. With Darling, an agent can also write: build Custom Views, tune alerts and mute rules, and onboard whole fleets, all over MCP.

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 watches for problems continuously. Lite surfaces them in the system tray; Darling, running headless, sends them by email and webhook.

What Gets Monitored

  • Blocking — longest blocked session exceeds threshold (default 30s Darling, 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% Darling, 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 to Slack, Teams, or any external alerting endpoint
  • 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

Lite and the Darling viewer share a clean, responsive interface with filterable grids, interactive charts, and full dark and light themes. Darling adds a read-only web dashboard.

🔒

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. Per-collector schedules and named presets let you dial collection up or down and set quiet hours, no code required.

📁

No Cloud Required

Darling keeps everything in its own bundled PostgreSQL store; Lite keeps it in local DuckDB files. Nothing leaves your network.

🔔

Real-Time Alerts

Eight alert types across tray (Lite), SMTP email, and webhooks (Slack, Teams, or any endpoint). 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

36 collectors, shared across Darling and Lite.

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

Darling Setup

  1. 1
    Download the Darling service zip and extract it on a monitoring host
  2. 2
    Run the scripted install from an elevated prompt; it bootstraps the Postgres store and starts the service
  3. 3
    Add your servers: paste a list in the viewer, or onboard them over MCP
  4. 4
    Optionally enable the web dashboard and MCP endpoint for browser and AI access

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 for server connections
  • Air-gapped friendly — no outbound calls except the SMTP and webhook endpoints you configure
  • 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