SQL Server Performance Monitoring framework

Free and Open Source, developed by SQL Server DBAs.

Because every environemnt is a production environemnt for someone and needs to be monitored.


DemoGet started

Quick installation using dbatools:

Install-DbaSqlWatch -SqlInstance YourSqlServer 

GitHub release Build Status GitHub Release Date GitHub All Releases GitHub Last Commit


Performance Dashboard Demo

Check out a working of of the Power BI Dashbaord. This example runs in PowerBI Servie and it will look and work exactly the same in the free PowerBI Desktop. Best experienced in Full Screen.






Flexible with Zero maintenance

SQLWATCH was built to help you monitor all your enviroments, not to become another thing to worry about. It has been designed with set and fortget approach.

Written in T-SQL which means you can tweak and adjust as you wish.

Schema optimised for long term storage means minimal growth and ability to compare months or even years of performance statistics.

Provides insight into index usage, missing indexes, database growth and disk utilisation.

Default installation will collect most critical metrics and if this is not good enough it is super easy to enable new metrics or even add your own.



Decentralised monitoring

No complex infrastructure provisioning required.

No additional monitoring services or central servers to worry about, no additional VMs to be provisioned, no agents to install.

Optional central repository database for central reporting.

Each server monitors itself. SQLWATCH uses SQL Agent jobs for data collection which is then stored locally and not affected by network blips. This approach allows it to work in isolated networks yet it still allows for central reporting but with the benefit of distributed storage and monitoring.

Perfect for consultants that do not have 24/7 access to the client network. You can collect data from remote instances into central repository every few minutes or every few days. It's up to you.



Alerts, Reports and Integrations

Fully customisable and flexible alerting engine with actions executed via PowerShell allows almost unlimited integrations including HTTP calls, launching programs and executing T-SQL queries.

Text based alerts delivered via email, Pushover, Slack or any other service that accepts HTTP calls.

More sophisticated notifications using html reports.

Saving files to shared drives or creating "trigger" files to integrate with other systems.

Pushing data to monitoring platforms such as Zabbix and Nagios and log collectors such as GrayLog and Splunk



How it works



1. Collect

Collects pre-defined, high-granularity performance metrics.

2. Store

Stores collected data in a local schema optimised for performance.

3. Check

Check engine ensures all metrics are within the thresholds.


4. Action

Raises alerts or triggers actions for failed checks and metrics that breach the set thresholds.

5. Analyse & Report

Analayse Performance data using provided PowerBI Dashboard or get emails with schedueld reports.

6. Archive

Aggregates high granularity data and archives for long term storage and long term analysis.



Latest Updates


Latest release


  1. Fixed Cartesian product bug introduced in 2.0
  2. Re-worked PBI dashboard to remove custom data retrieval functions to utilise Direct Queries and benefit from Query Folding. It should now be also possible to deploy dashboard to the PBI Service and schedule it.
  3. As part of this work, PBI schema was simplified and GUIDs are no longer required. I have therefore migrated keys from GUIDs to numerical values which saves the storage utilisation.
  4. Further schema improvements reducing storage requirements by ~40-60%
  5. Started adding views that serve pre-calculated data for reporting which can be fed into any dashboarding solution.
  6. To improve reporting times, delta calculations have been pushed to the collector so all data is available in tables and no expensive calculation happen during reporting.
  7. Some code cleansing and aligning with standard
  8. Added config procedure to enable index compression, on top of the table compression introduced in 2.0
  9. Removed unused indexes
  10. Tweaked clustered keys for better performance
  11. Normalised wait types
  12. Removed calculations that are not used
  13. Improved wait stats collection by the mean of capturing snapshots in stage tables to correctly calculate deltas between snapshots where the first snapshot had 0 wait time.
  14. Started moving most of the business logic from PBI to the database tier
  15. Re-worked SSIS to address schema changes
  16. Improved central repository SSIS import as in some cases, it would try and collect data from remotes without having valid header which would cause FK violation.
  17. Post deployment configuration is now applied automatically by a mean of triggering the relevant agent job

Due to GUID migration it is not possible to directly upgrade from version 2.0

Documentation can be found at https://docs.sqlwatch.io

As always, please feedback any issues via GitHub Bug or on our Slack channel

See changelog...

Our mission

The aim of this this project is to provide a free, repository backed, SQL Server Monitoring. As DBAs we need to know what happened in the database in a given point in time in order to troubleshoot performance or configuration problems. Unfortunately this is not an easy task and hence there is not a lot of free monitoring solutions available. SQL Server is very popular and used by a lot of people but not every one can afford expensive, enterprise monitoring solution. We are here to fill this gap!

Why we do it

Because we know how important it is to know how systems behave over a period of time rather than just when the problems happen. Repository backed monitoring gives you the benefit of being able to review historical behaviour.

Meet the team

Why not meet The Team and talk to us on #sqlwatch channel on sqlcommunity.slack.com or take a look at our Roadmap, or follow @sqlwatch on Twitter.

This site, like most websites, uses cookies. By continuing to use this website, you agree to their use.