Skip to content

Database Health Monitor

What is Database Health Monitor?

Database Health Monitor is an inexpensive yet powerful tool developed by Stedman Solutions to help SQL Server administrators monitor and maintain their database environments effectively. Designed with both usability and performance in mind, it offers a comprehensive suite of features to identify, diagnose, and resolve SQL Server issues before they escalate. This makes it an essential tool for DBAs and IT teams who prioritize database reliability and performance.

Core Features of Database Health

The tool provides a wealth of functionality, including real-time monitoring of critical SQL Server metrics such as wait statistics, index fragmentation, and resource utilization. Its intuitive dashboards allow administrators to gain a quick understanding of their server’s health, while detailed reports help track trends and identify areas needing optimization. With built-in tools for detecting common database issues like missing or unused indexes, blocking, and deadlocks, Database Health Monitor empowers users to make data-driven decisions to improve database performance.

Insights for Query and Index Optimization

Database Health Monitor excels at identifying performance bottlenecks, including poorly performing queries and inefficient indexes. The tool provides insights into long-running queries, high CPU-consuming operations, and indexes that may be missing or causing performance drag due to fragmentation. By addressing these issues, organizations can significantly boost application performance, reduce resource consumption, and ensure their SQL Servers are operating at peak efficiency.

Proactive Problem Detection

One of the key benefits of Database Health Monitor is its ability to detect and report potential problems proactively. It identifies issues like high disk latency, excessive transaction log growth, and databases running out of space—helping DBAs address problems before they lead to downtime. The tool’s real-time monitoring capabilities make it an invaluable resource for maintaining uptime and ensuring business continuity.

Tailored for Practical Use Cases

From small businesses managing a single SQL Server instance to large enterprises with complex database ecosystems, Database Health Monitor caters to a wide range of needs. It supports capacity planning by analyzing trends in resource utilization and provides actionable recommendations to optimize your SQL Server environment. The tool is also widely used for troubleshooting, offering deep insights into performance problems and pinpointing their root causes.

Designed by SQL Server Experts

Database Health Monitor was built by the experienced team at Stedman Solutions, with insights from decades of managing SQL Server environments. This expertise is evident in the tool’s practical approach to problem-solving, offering features and guidance that address the challenges DBAs face daily. Whether you’re a seasoned database administrator or just starting out, Database Health Monitor provides the tools you need to succeed.

Cost-Effective Monitoring and More

Unlike many monitoring tools that come with steep licensing fees, Database Health Monitor offers robust features at an affordable price point. Its cost-effectiveness makes it accessible to organizations of all sizes, providing professional-grade monitoring without breaking the budget. This affordability ensures that even smaller businesses can take advantage of its powerful capabilities to maintain healthy, efficient databases.

The Perfect Companion to Managed Services

When paired with the Managed Services from Stedman Solutions, Database Health Monitor becomes even more valuable. The monitoring insights it provides align seamlessly with the proactive support and maintenance offered by our team. Whether you need assistance with query tuning, disaster recovery, or regular database health checks, Stedman Solutions ensures your SQL Server environment is running optimally. Learn more and get started at DatabaseHealth.com to elevate your SQL Server management to the next level.

Database Health Monitor – Version 2.3 Released

With over 7500 downloads worldwide to date, I have just released the next installment of the FREE Database Health Monitor application.

Here what one person had to say about it “Excellent – It’s the first tool I open every morning to see what is going on in my production environment! Thanks for the great work!”

Download today:

 

Database Health Version 2.3 Release Notes

Released March 20th, 2016.

It has been about 3 months since the last release, and I have added several new features, and many bug fixes.

New Features

  • Reducing the number of different database connections used by Database Health Monitor. Reusing existing connections where applicable.
  • Backup Report
    • Database restore script for the backups report now includes the “RESTORE HEADERONLY” option.
    • Updated the restore script to include a FILELISTONLY option to check on file locations before restoring.
    • Recent backups are now shown in green so it’s easy to see which databases have recent backups and which do not.
    • Added column to show the size of the backup.
  • CheckDB dialog: Added the instance name to the CheckDB dialog so that you can know which instance the CheckDB is being run against.

Read More »Database Health Monitor – Version 2.3 Released

SchemaDrift – Database Schema Differences – My Weekend Project

This weekend I had some spare time, so I started coding on a new project on Friday night. This project is something that I intend to include in the next release of Database Health Monitor. THis project allows users to compare the database schema between two SQL Server databases.

As you read this, consider two questions that I will ask again at the end of the post, I would really love some feedback:

  1. Would you use this?
  2. Would you be interested in helping me test it out as an early release?

This was inspired by working with clients who need to compare the schema between different SQL Servers, either between multiple production servers with the same schema, or between test and production servers.

I know there are other tools out there that do this, but its not easy to convince a client to purchase 3rd party tools, so I am left not having a good tool to do this.

This is just a start, I still have a great deal of work to do, but its the foundation for me to build upon.

How it works:

  • Connect to a SQL Server and choose a database to compare (known as the source).
  • Connect to another SQL Server and choose another database to compare against (known as the destination).
  • Click the compare button.
  • The schema is then compared between the two servers (Tables, Sprocs, Functions, Users, Indexes, etc…)
  • Results are sorting into 4 categories.
    • Matched between the two servers.
    • Exist on both servers, but something is different.
    • Only on the Source Server.
    • Only on the Destination Server.
  • You can the browse the code behind those objects, and see the differences.

Database Schema Drift The Demo:

To start with we just run the program.

SchemaDrift Database Schema Comparison Diff

Next we click the connect button under the Source Server section. For the first server I am going to connect to a SQL Server 2008 R2 instance with SQL credentials.

Read More »SchemaDrift – Database Schema Differences – My Weekend Project

PREEMPTIVE_OS_GETPROCADDRESS and xp_create_subdir

Here is a discovery that I made using the Database Health Monitor historic wait monitoring, on a server with slow storage where the backups were being written.

If you are seeing excessive waits on the PREEMPTIVE_OS_GETPROCADDRESS wait type and xp_create_subdir is the command with the wait, and this is occurring at the time your backups are being run, it is a symptom that the storage location for your backups is having I/O difficulties.

PREEMPTIVE_OS_GETPROCADDRESS and xp_create_subdir

I noticed this on a server with an external USB 2.0 attached hard drive that was being used for backups, and on a second server with a USB 3.0 external hard drive. When the backups run, there was a wait for the process to attempt to see if the backup directory exists, and to create it if it did not.

Read More »PREEMPTIVE_OS_GETPROCADDRESS and xp_create_subdir

mssqlsystemresource Database

I was looking through my SQL Server error logs to confirm that CheckDB was being run as I had scheduled based on my previous post to run DBCC CheckDB on all databases. I wanted to confirm that there was no corruption, and that all of the databases had been checked, and not had been missed. Going through this I noticed the logging of all of my databases, but one extra database showed up, the mssqlsystemresource database.

mssqlsystemresource database

Now the mssqlsystemresource database is an internal SQL Server database that is used by SQL Server, it also gets replaced by SQL Server when you do an upgrade of your SQL Server database. It is hidden so that people don’t have access to it, and it doesn’t show up when you run the undocumented sp_msforeachdb it doesn’t include the mssqlsystemresource database. Additionally the sys.databases view doesn’t include the mssqlsystemresource database.

Read More »mssqlsystemresource Database

DBCC CheckDB All Databases

If you use the SQL Server maintenance plans to run DBCC Check DB, you are not allowed to include TempDB in your DBCC CheckDB sequence. For a while I was using maintenance plans, and ending up adding a separate job step to run TSQL to just check TempDB.

Rather than using two different steps, the regular maintenance plan, and a special step for Temp DB, I have instead dumped the regular maintenance plan step, and just used the following TSQL code to run DBCC CheckDB against all databases on the SQL Server.

Option 1: DBCC CheckDB All Databases using sp_msforeachdb

I have included Option 2 below since there are some pretty serious flaws in the sp_msforeachdb script as shown in option 1, specifically sp_msforeachdb will occasionally skip databases. It also has trouble with databases created with certain characters.  Anyway if you want it, here is, but I would recommend paging down to Option 2 which is much more reliable. I would like to thank Patrick Flynn who showed me the flaws in sp_msforeachdb.

The stored procedure sp_msforeachdb takes a parameter of query that will get run against all databases on your SQL Server Instance.


EXEC sp_msforeachdb 'DBCC CHECKDB(''?'') WITH NO_INFOMSGS;';

You can set it up as a maintenance plan like this:

Read More »DBCC CheckDB All Databases

Database Health Monitor Version 2.1 coming soon

In the next week or two, I will be releasing version 2.1 of the Database Health Monitor application. I am just going through the final testing process now to get it ready for general release. There are a number of new features that have been requested since the release of version 2.0 that will be coming out in version 2.1. The most request feature was the addition of support for the F5 key to refresh reports. There have been several new server or instance level reports added, along with a new section to link to the instance level reports.

Database Health Monitor

Database Health Monitor Version 2.1 New Features

Here is a list of the newly requested features that are complete, and will be available in version 2.1 of the Database Health Monitor.

Read More »Database Health Monitor Version 2.1 coming soon