Marcin Gminski is a SQL Server consultant with over 15 years of experience. He created SQLWATCH, an open source SQL Server performance monitoring tool with PowerBI reports. SQLWATCH collects performance data locally on each monitored server through performance counters, DMVs and extended events. It has a small footprint and is maintenance free. The installation deploys a database to each server where data is stored locally. PowerBI reports provide visualization of performance metrics, queries, memory usage and more. The tool is hosted on GitHub and the community is invited to contribute.
2. https://sqlwatch.io
Marcin Gminski
• SQL Server consultant with over 15 years
experience in enterprise databases and
performance testing.
• Lead DBA, architect, developer and performance
consultant on a number of large projects in
Banking, Public and Private sectors.
• Managed over 3000 SQL Servers at once.
• Twitter: @marcingminski
• Website: https://marcin.gminski.net
• Email: marcin@gminski.net
13. https://sqlwatch.io
The concept of SQL Server monitoring
• Performance monitoring isn’t just about real time alerts and charts. It
is mostly about collecting correlated performance data for later
analysis, ideally over a period of time
• Performance is really only relevant in a context or in a comparison.
• Performance monitoring isn’t just about production systems but
should be done throughout the lifecycle from development to
production readiness.
• Making sense out of the data is the most complex task
• SQL metrics are cumulative and some are point in time (Query store is
slightly different)
14. https://sqlwatch.io
Point in time metrics
0
2
4
6
8
10
12
14
16
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
ProcessorTime%
00:13.201:12.702:12.803:22.304:12.605:12.006:13.007:12.508:12.209:12.710:12.411:12.512:12.413:13.914:12.215:13.116:12.317:14.218:12.6
cntr_value
• “as is” values
• Easy to capture and
present as no
calculation required
• Reducing data
points means
calculating averages
over the removed
period
• Not storage friendly
18. https://sqlwatch.io
How we collect performance data
• OS Performance Counters and WMI
• SQL Server Dynamic Management Views (DMVs)
• SQL Server related Performance counters only
• Transactions and executions
• SQL Server Extended Events
• SQL Server Traces (deprecated, use XE)
22. https://sqlwatch.io
Key features
• Works with all current SQL Server versions excluding Express.
• Enterprise friendly
• Decentralised collection - own database deployed to each monitoring
instance
• Local storage, nothing is sent over the network and thus data collection
does not depend on network connectivity
• Driven by Agent Jobs
• PowerBI for reporting and data analysis
• Small footprint and impact on the instance
• Set it and forget it maintenance free approach
42. https://sqlwatch.io
Future plans
• Index analysis (ready to be released)
• Alerting
• SQL ERRORLOG Analysis
• Table growth
• Query store
• Server configuration
• Backup and maintenance history
• SQL agent history
• Explore SQLTiger repository
• Centralised repository and reporting
• (Maybe!) .NET web frontend (or integrate with Opserver)