virtualDBA ® is a fully automated database maintenance, monitoring and auditing system for SQL Server 2005/2008.

It's designed to automatically maintain, monitor and audit an instance of SQL Server with little or no manual intervention.

Just setup the virtualDBA database and that's it!

If you add a new database to your SQL instance, virtualDBA will automatically detect it and add it to the maintenance, monitoring and auditing routines. If you drop a database, it will detect that as well and automatically clean up the associated routines. There's no need to modify anything manually.

The virtualDBA system is based entirely on the Microsoft T-SQL query language and does not require any proprietary executables or DLL files. You can even customize the source code to match your individual system requirements.

Whether you're a small company looking to introduce database maintenance on your systems or a large company looking to standardize the maintenance/monitoring/auditing routines across your SQL Infrastructure, the virtualDBA system can assist.

virtualDBA is a fully functional Open Source application.
No sign-up or registration is required.

virtualDBA can significantly reduce the amount of time necessary to maintain, monitor and audit an instance of SQL Server. It does this through advanced automation and centralized configuration. Combine the time savings from one SQL instance across an entire SQL infrastructure and you will truely realize the benefits of having a "virtualDBA".


Our uniquely designed "global configuration grids" allow you to enable/disable or configure any maintenance, monitoring or auditing option for any database in just a few keystrokes. No recoding, no SQL Agent Job updates and above all, no time wasted. Check out the screen shots of our "Maintenance Grid".

Maintenance Grid
DB Consistency
Maintenance Grid
Index Rebuilds
Maintenance Grid
Stats Updates
Maintenance Grid
Maintenance Grid
Maintenance Grid

Long running or blocked queries, schema or security changes, login failures, deadlocks, maintenance issues, database mirroring state changes or increased queue depths, system profile/benchmarks etc. are all fully logged and sent to you real-time via email alerts. If you have existing Enterprise Monitoring tools, virtualDBA can be configured to integrate with them directly.

Monitor Report
Database Summary
Monitor Report
SQL Performance
Monitor Report
SQL Memory Utilization
Monitor Report
Database File I/O
Monitor Report
SQL Account Activity
Monitor Report
Index Usage Statistics

Need to add a database? virtualDBA will automatically detect all new databases and add them to the maintenance/monitoring and auditung routines.

Need to drop a database? virtualDBA will detect that as well and clean up all of the associated routines.

Want to customize your maintenance? With virtualDBA, there's no need to modify any scheduled jobs or re-code any stored procedures. You can enable/disable or modify any maintenance option for any database in a single view - the maintenance grid.

Want to customize your database monitoring? You can change any monitoring option for any database in a single view - the monitoring grid. You don't need to add,remove or restart any jobs - just make the changes you want and you're all set.

Want to customize your performance monitoring? Add any valid SQL Performance counter you want at the instance, database or object level in a single view - the performance grid. Add manual alert thresholds or let virtualDBA set them for you. Add email alert CC distribution lists. Drop counters. It's all up to you and it's all real-time. There's no need to run Perfmon or any other third-party utilities. virtualDBA will take care of it automatically.


Why use virtualDBA?

Simple answer - "automation."

The virtualDBA system was developed to handle all core operational aspects of a database server with little or no manual intervention.

  • It executes intelligent maintenance routines resulting in less overhead and significantly reduced maintenance window requirements.
  • It maintains all database and transaction log backups and includes the ability to backup-compress-and-copy to an alternate location for stand-by or Disaster Recovery scenarios.
  • It proactively monitors all aspects of a system and provides real-time alerting capabilities.
  • It audits all DDL, security, database mirroring state changes and dealocking events and provides detailed information in XML format.
  • It automatically analyzes the maintenance/monitor/audit data in the background providing up-to-date system profile benchmarks of your database installation.
  • It does not waste hours backing up a database only to encounter a lack of space error at 90% into the backup. It will tell you if there is insufficient space before it starts the backup. It can also be configured to automatically backup to an alternate location (SQL 2008 systems only) in the event of any space related or backup issues.
  • It does not rebuild/reorg indexes in an all-or-nothing fashion with the same settings for each database. It will pre-determine the fragmentation levels and usage of indexes and then decide which indexes should be rebuilt.
  • It does not update statistics in an all-or-nothing fashion with the same sampling interval for each database. It will only update the statistics for collections that actually require it.
  • It does not require you to modify jobs, change code or update maintenance wizards in the event that you want to change a mainenance option for one or more databases - you can do this in a single view.

virtualDBA handles all of these tasks for you... automatically.

If you are currently using a third-party application or custom routines:

  • What are your current system performance benchmarks?
  • How many batch requests/sec is normal for your system across daily and peak loads?
  • How many transaction/sec do your core databases handle?
  • What are average wait times for your indexes?
  • What is the ratio between index seeks vs index scans on your system?
  • Which database files have the highest IO wait times?
  • Which drives have the highest overall IO wait times?
  • Which queries take the most CPU, duration or IO?
  • How much TempDB space is being used per session?

virtualDBA answers these questions for you... automatically.

In fact, you don't even have to access the virtualDBA system to get this information. Just enable the reporting feature and virtualDBA will send it to you daily!

Every aspect of virtualDBA is customizable to suit your environment. From maintenance options to monitoring thresholds, adding performance counters on-the-fly and setting up custom reports, just make the changes you require and virtualDBA will do the rest.


virtualDBA is a Transact-SQL based system that was designed to handle the following core database operational tasks:

  • Maintenance
  • Monitoring
  • Auditing
  • Reporting

Once setup, the system will automatically detect existing/new databases and include them in the maintenance/monitoring/auditing routines. It will also automatically detect the removal of databases and clean up their associated routines.

No manual intervention is required.

If you need to customize the maintenance for any of your databases, you can do so in a single view. You don't need to change any code, customize any stored procedures or modify/enable/disable any scheduled jobs.

With virtualDBA, it's all automated.


The virtualDBA maintenance agents handle all of the core database maintenance processing. In addition to providing the standard set of maintenance routines, virtualDBA also offers a number of extended configuration options that provide the ability to fine-tune maintenance routines on a per-database basis.

All maintenance agents can be enabled/disabled or configured on a per-database basis in a single view - there is no need to reconfigure any SQL Agent jobs directly.

task description
Physical/Logical Consistency Checks Perform full physical/logical database consistency checks on all user and system level objects. This task can be configured to include index level checks, data purity checks (for database upgrades) or physical only checks.
Index Rebuild/Defragmentation Rebuild or defragment indexes. This task is based on a pre-configured set of thresholds values and monitoring options that minimize the number of indexes being rebuilt/defragmented per execution. This task also has the ability to enable inter-index rebuild/defragment transaction log backups to assist in maintaining the size of the transaction log for databases containing larger indexes.
Statistics Updates Update the distribution statistics for all indexes that contain out-of-date statistics. This task can be configured to include all indexes or just indexes that contain out-of-date statistics - the "smart update". Both are configurable with user-defined sampling percentages.
Full/Differential and Transaction Log Backups Perform full or differential database and transaction log backups. This task has a number of configurable options including the ability to enable post-backup verifications, enable/disable the use differential backups, on-error UNC backups (for SQL 2008 systems only), enable backup file compression using any command-line based third party compression software, "backup-and-copy" to UNC paths for DRP/BRP coverage, configurable backup archives, etc.
FullText Catalog Full/Incremental Populations Perform full or incremental FullText Catalog Index populations.

All maintenance processing is logged and summarized/aggregated dynamically into a number of profile views which provide maintenance benchmarks across an instance of SQL Server.


The virtualDBA monitoring agents keep track of all key performance and query execution metrics. These agents operate in near real time or scheduled intervals and can be configured to send out alerts in the event that a monitoring threshold target has been met. In addition to logging key monitor/metric information, virtualDBA can also be configured to dynamically "set" an SQL instance's performance monitoring thresholds automatically based on aggregated current/historical metric data. This dynamic approach ensures that the thresholds reflect the varying activity loads on a system (ie month end, quarter end, etc.)

All monitoring agents can be enabled/disabled or configured on a per-database basis in a single view - there is no need to reconfigure any SQL Agent jobs directly.

monitor description
Database/Transaction Log File Expansions and Shrinks Monitors all file expansions/shrinks and provides the datestamp and size of each operation.
Database/Transaction Log File IO Monitors IO activity on a per database/per file basis. This monitor tracks IO stalls, bytes read/written, etc. In addition to monitoring file IO, this agent also provides summarized views of file and logical drive "hot spots."
Database Memory Utilization Monitors the per database memory utilization on an overall and per object basis.
Missing Indexes Monitors for missing indexes and includes the proposed query gain factor and TSQL create statements.
Index Operational Statistics Monitors the operational statistics on a per database/per index basis. This monitor also provides summarized views and benchmarks of index wait times, singleton vs range scan usage, etc.
Index Usage Statistics Monitors the usage statistics on a per database/per index bases. This monitor also provides summarized views and benchmarks for seek/scan/lookup vs maintenance operations, etc.
Blocked Queries Monitors blocked queries (including the lead blockers) based on pre-defined thresholds.
Long Running Queries Monitors long running queries based on pre-defined thresholds.
Query Performance Monitors per-query performance including CPU/IO utilization, execution counts, plan reuse and duration.
Database Usage Monitors database file usage.
Object Usage Monitors database object usage and rowcounts.
Row Counts Monitors per database object rowcounts to identify sudden increases or drops.
Fulltext Crawl Monitors the population/re-population of FullText Catalogs.
Performance Counters Monitors pre-defined performance counters and provides summary/benchmarks views.
TempDB Usage Monitors tempdb usage on a per-session/user basis.
SQLOS CPU Schedulers Monitors the CPU scheduler\wait statistics and provides summarized views of resource vs signal wait times.
SQLOS Ring Buffers - Paging Monitors SQLOS ring buffers for paging activity.
Security Monitors all SQL/NT account activity including null or weak passwords, account lockouts, password reset times, etc.
SQL Server Logs Monitors the SQL error logs for pre-defined "keywords."

All monitor processing is logged and summarized/aggregated dynamically into a number of profile views which provide performance benchmarks across an instance of SQL Server.


The virtualDBA audit agents track all key changes to an instance of SQL Server. These agents log/alert on all schema related changes, deadlock occurrences, logins and security account additions/changes and DB Mirroring state changes.

All auditing agents can be enabled/disabled or configured on a per-database/per-event basis in a single view - there is no need to reconfigure any SQL Agent jobs directly.

audit type description
DDL Audit all database or object specific additions, changes or deletions.
Locks Audit all deadlock occurrences. This feature provides detailed deadlock graphs in XML format.
Security Audit all security related changes or system logins.
Database Mirroring Audit all DB Mirroring state changes.


virtualDBA also offers a customizable reporting engine that provides the ability to schedule/execute the results of TSQL based statements in HTML or XML format. Simply add a new TSQL statement to the reporting templates view and configure the details (style, color, logos, email recipients, etc.) - the engine will take care of the rest.


eleven27 reserves all intellectual property rights for the virtualDBA software, documentation, websites, forums, blogs and other items related to the virtualDBA software.

1. Limitations on Use

You will not:
(a) reproduce the software or documentation;
(b) distribute, sublicense or otherwise commercially exploit the software, services or documentation;
(c) permit the use of the software, services or documentation by others or otherwise operate the software for third parties;
(d) modify or translate the software or documentation for the purpose of sales, distribution or profitability;
(e) disassemble, reverse engineer or decompile the software or otherwise attempt to discover any portion of the object or source code or trade secrets related to the software for the purpose of sales, distribution or profitability.

2. Warranty

Your use of this software is at your own risk. Neither eleven27 nor any other party involved in creating, producing or delivering this software is liable for any direct, incidental, consequential, indirect or punitive damages arising out of your access to, or use of, this software. Without limiting the foregoing, everything in this software is provided to you "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.


virtualDBA © 2010, All Rights Reserved

virtualDBA is a Registered Trademark of eleven27. virtualDBA is registered with the Canadian Intellectual Property Office.

Portions of this software may be subject to prior copyright.
Canadian Intellectual Property Office
Copyright Act ( R.S., 1985, c. C-42 )