Databases need more than performance monitoring

Image: performance monitoring pressure gauge

You’re gonna need more info

When you read a job spec for “database administrator”, it does not simply say:

  • Performance Monitoring

It says something like:

  • Database Performance Tuning
  • Database Security
  • Promoting Process Improvement
  • Problem Solving
  • Presenting Technical Information
  • Database Management
  • Data Maintenance
  • Operating Systems

(List taken in part from

So why are the most popular DBA tools, performance monitoring tools? Those are great, sure, but they don’t even begin to cover the vast majority of DBA responsibilities. What we need is environment monitoring.

Environment Monitoring

I don’t have a website I can link to, to give you a definition of SQL environment monitoring. That’s because we’ve been defining it ourselves, for the past nine years.

An environment monitor is a system that allows administrators to examine the overall and specific health of database instances.

An environment monitor should touch on performance, yes. It should also:

  • Manage and monitor security
  • Speed audits
  • Make a majority of common DBA tasks effortless
  • Collect and present as much system information as possible, including service packs, disk space, errors, and more
  • And more
  • And also, lots more

Minion Enterprise is far more than glorified maintenance

This is exactly what we built Minion Enterprise for: to monitor and manage the environment. To take away the Server-By-Agonizing-Server aspect of administration by introducing the “set based enterprise” approach. To automate everything that can be automated, and to make data available to the DBA on everything else.

Get a trial and a demo, and you’ll see exactly what we mean. Monitor your environment, not just your performance.

Five minutes to freedom: Installing Minion Enterprise

Let’s take five minutes and get our entire enterprise in order.

Get your repo server, your Minion Enterprise download, and your license key (trial or permanent). Install and config take just five minutes.

02-Install1. Install

Extract the MinionEnterprise2.2Setup.exe and run it on your repository server.  Give the installation “localhost” for the instance name.

2. Configure email for alerts

Connect to the repo server and insert your alert email:

USE Minion;
INSERT INTO dbo.EmailNotification ( EmailAddress, Comment )
SELECT '' AS EmailAddress, 'DBA' AS Comment;

3. Configure servers

Insert (or bulk insert) server to the repo:

INSERT INTO dbo.Servers
 ( 'Prod01', 'Gold', 1433, 1, 1),
 ( 'Prod02', 'Gold', 1433, 1, 1),
 ( 'Prod03', 'Silver', 1433, 1, 1),
 ( 'QA01', 'Silver', 1433, 1, 1),
 ( 'Dev01', 'Bronze', 1433, 1, 1),
 ( 'Dev02', 'Bronze', 1433, 1, 1);

4. You’re done!

Jobs will begin kicking off to collect data within the next hour. Some jobs run hourly, some run daily or weekly or monthly. You’ll start getting tables full of useful data, and email alerts that actually mean something.

If you’re impatient to start getting some of the good stuff right away, kick off the CollectorServerInfo% jobs manually. These populate data in the dbo.Servers table, which other jobs need to run. You’ll start noticing data in the Collector.DBProperties, Collector.ServiceProperties, and Collector.DriveSpace tables first, as these jobs run most frequently.

While ME is taking care of your shop for you, you can get to know it better with the online documentation!

Download our FREE maintenance modules below:

  • Minion Backup: Free SQL Server Backup utility with world-class enterprise features and full lifecycle management.
  • Minion Reindex: Free SQL Server Reindex utility with unmatched configurability.
  • Minion CheckDB: Free SQL Server CHECKDB that solves all of your biggest CHECKDB problems.

Minion Enterprise Trial Newsletter

This is the 13 part newsletter series for users of Minion Enterprise, the SQL Server management solution.

1 – Index Stats 

In this introductory newsletter:

  • Pointing out what “Quick Start” sections to walk through to complete your ME setup
  • Introducing the Collector schema, which holds all the goodies
  • Your first module: Index Stats, which allows you to research index issues across the whole enterprise


2 – Database Files and Script Schemas

  • The Database Files Module, which you can use for tracking and projecting file growth over time, among other things
  • The Script Schemas Module, which will save you at some point, from objects dropped or modified or somehow lost


3 – Logins module and Clone Users utility

  • The Logins module, which is the basis for a lot of amazing security functionality
  • The Clone Users utility, which makes account creation and management effortless


4 – Schemas in Minion Enterprise, and the Drive Space module

  • Minion Enterprise Schemas, which (as we explain) logically group ME functionality
  • The Drive Space Module, which allows you to deeply customize “drive space is running out” alerts


5 – Service Properties

  • The Service Properties Module, which is super cool. It gathers information on SQL services on all your servers! Service down alert, anyone?


6 – Instance Config

  • The Instance Config Module, which collects and manages sp_configure settings centrally


7 – Error Log Search

  • The Error Log Search Module, which lets you set up error log search terms and find them wherever they occur in your SQL environment


8 – Wait Statistics and FAQ

  • The Wait Statistics Module, which gathers wait stats info for your research and alerting purposes
  • Frequently Asked Questions, which we answer


9 – Databases, and Custom Objects

  • The Database Module, and along with that the New/Retired Database alert
  • Custom Objects, and whether you should create them in ME (spoiler answer: Heck yes.)


10 – Database Properties, and “To Autogrow or Not?”

  • The Database Properties Module, which gets a ton of information, including the date of the last full, log, or differential backup
  • To Autogrow or Not?, which is a blog of Sean’s discussing autogrow, especially in the context of Minion Backup and Minion Enterprise


11 – Objects, Tables, and Columns (and top 20 features!)

  • The Objects, Tables, and Columns modules, which are three separate but similar modules that collect data on…can you guess what?
  • Top 20 Features, which is a pretty subjective, but pretty good, list


12 – AD Group Members and Login Access Method Audit utility

  • The AD Group Members Module, with which you can audit your servers, see who has access where, and on and on
  • Utility: Login Access Method Audit, which shows you how users are gaining access to SQL, and whether they are getting in through multiple methods


13 – Last week!! Work like a DBA

This last newsletter explains why “Work like a DBA” is the ME motto, and introduces you to the idea of the set-based enterprise.


Write to us at for a demo and a quote. Write to us at for help and suggestions. Write to us wherever you can find us!

ME Trial 13 – Last one!! Work like a DBA.

minion enterprise-01

A quick glance behind, and ahead

It’s the final email of yourMinion Enterprise trial information series!

So last time, we introduced the AD Group Members module, and the Login Access Method Audit utility.

This time we’re actually not going to look at a specific module. Today, we’re just going to talk a bit.

“Work like a DBA”

We’ve chosen “Work like a DBA” as the main slogan for Minion Enterprise…though believe me, we still come up with new slogans on a regular basis, from the sublime to the ridiculous. So why “Work like a DBA”?

First: code. Database administrators, by and large, work in code – not in a GUI. We know that code is something you can save, test, streamline, automate, repeat. You can show the boss the code you ran, thus proving it wasn’t you who dropped that table, whereas Pat over there can’t prove the same, because Pat uses the GUI. Even more, the GUI is slow. (“Click, click, click, click, click, click, click…sigh…click, click, click…”) It’s non-saveable. It’s non-testable, non-streamlineable…you get the idea. So to work like a DBA, we think, is to work in the code.

Second: SBAS. DBAs also understand the idea of RBAR: Row By Agonizing Row. Here at MinionWare, we’ve expanded that idea to SBAS: Server By Agonizing Server. Sure, Microsoft has attempted to ease the headache of managing servers one-by-one-by-one, but they haven’t done a really comprehensive job. With ME, you can standardize backups and maintenance from a central location (using Minion Backup and Minion Reindex – and soon, Minion CheckDB). You can standardize sp_configure settings. You can audit and clone logins. And, so much more.  MinionWare has created the set-based enterprise, because being a DBA should not mean “hours and hours of busy work, server by agonizing server”.

Third: Know thy system. Minion Enterprise collects data using SQL Server jobs. It runs SQL stored procedures to accomplish most tasks. It provides SQL Server Reporting Services reports. Data is stored in tables, not flat files. We have the unique opportunity to provide a force multiplier to technologists, using the exact technology that they already work with. Mange SQL with SQL. Why not?

That last point means that all the mechanisms that the system uses are already familiar to you. It means that the data you need isn’t hidden behind some .NET front end; it’s all there, waiting for you to query it any which way you want. Need an alert based on log file sizes? Go for it. Want to search all your error logs for a particular trace flag? Sure. Almost anything you can think of, you can do, because the data is there.

So, go wild. Minion Enterprise makes your enterprise into your enterprise, whether you have 2 instances or 20,000. And if you run into a snag, seriously: write us. We simply love hearing about how people are using the product, what else you want in it, what wild edge cases you run into.

And, you know. Work like a DBA.

Write to us at for a demo and a quote. Write to us at for help and suggestions. Write to us wherever you can find us!

ME Trial 12 – AD Group Members and Login Access Method Audit utility

minion enterprise-01

A quick glance behind, and ahead

So last time, we introduced the Objects, Tables, and Columns modules. This time we’ll look at the AD Group Members module, and the related Login Access Method Audit utility. This is one collection that we are super, totally, and completely in love with.

The AD Group Members Module

It is very common to have Windows groups as logins in SQL Server. The problem for DBAs is that they then have no idea who has access, because you can’t see who is a member of which Active Directory groups.  Now you can, and quite easily. Minion Enterprise pulls in all of the relevant AD information to repository tables, and also provides you with a set of stored procedures for analyzing and reporting on the data.

What can we do with this? First, of course, we can list out every individual user that has access to SQL Server, whether they have direct access, access through an AD group, and/or access via nested AD groups. You can use this data to audit your servers – for example, getting a list, or even a simple count, of sysadmins on each server. (One client found to their surprise that they had over 500 sysadmins on a single server!)  And of course, anything else that you can think of. The data is all there, waiting for your query.

Objects in the AD Group Members Module


  • Collector.ADGroupMember – Holds collected information about AD group membership from each managed server.


  • Collector.ADGroupMemberCurrent – Holds the most recent collection of AD group membership.
  • Collector.ADGroupMemberPrevious  – Holds the next-to-most recent collection of AD group membership.

Notable Stored Procedures

  • Report.ADAcctsInSQLAll – This procedure gets an expanded list of Active Directory groups for all servers. Minion Enterprise comes with a utility script that allows you to save the results of this SP to a temporary table, and thereby limit the result set by any criteria (e.g., by sysadmins): \ManualScripts\Logins\Report.ADAcctsInSQLAll.sql
  • Report.ADAcctsInSQLByApp – Gets an expanded list of Active Directory groups, filtered by a specific AppID  (as defined in dbo.Application).
  • Report.ADAcctsInSQLByEnviro – Gets an expanded list of Active Directory groups for a specific environment (as defined in dbo.ApplicationEnvironment).
  • Report.ADAcctsInSQLByID – Gets an expanded list of Active Directory groups for a specific Server by InstanceID.
  • Report.ADAcctsInSQLByServerName – Gets an expanded list of Active Directory groups for a specific Server by ServerName.
  • Report.ADAcctsInSQLBySLA – Gets an expanded list of Active Directory groups for a specific SLA (e.g., Gold).

Check out the Active Directory Group Expansion video on our YouTube channel, which demonstrates finding what users are in which Windows group. And, see Passing Your Security Audits for quite a bit more!

Utility: Login Access Method Audit

This utility is an auditing feature that shows you how users are gaining access to SQL, and whether they are getting in through multiple methods.  This is an extremely powerful module; only Minion Enterprise brings you this type of functionality.

SQL logins can be AD accounts, SQL accounts, or AD groups.  When a login is an AD group, there is no way for the DBA to know who is in that group.  This is why Minion Enterprise takes a look at the AD groups that are registered as logins on each managed SQL instance, and queries Active Directory for all of the members of those groups.

This is data is saved to the Collector.ADGroupMember table.  Look at this table, and you may notice that there is no InstanceID.  This is because Active Directory group members themselves have nothing to do with SQL. An AD group can be a login on multiple SQL instance, so saving the AD data independent of any server information is the way to go.  To match AD accounts with logins on a specific box, join Collecgtor.ADGroupMember with Collector.Logins – or let the following procedure do it for you.


  • Audit.LoginPermAccessMethod – This stored procedure shows the path by which an account obtains access to SQL Server.  This procedure can be called with or without an account, and with or without a server name.


NOTE: There is one limitation to the AD data. If a user has an Active Directory account with a completely different name from their SQL login, there is simply no way ME can know those two accounts are the same person.  They are independent, unrelated accounts.  So if you call the audit procedure above with a user account in mind, and that account doesn’t match any other accounts, you won’t see it in the results.

As always, feel free to write your own queries to find what you need. Minion Enterprise is meant to be customized.

This utility depends on “current” views from two collections:

  • Collector.LoginsCurrent
  • Collector.ADGroupMemberCurrent


NOTE: If for whatever reason the Logins or AD Groups data is not up to date, run the jobs associated with these collections:

  • CollectorLoginsGet-GOLD (and/or the Silver or Bronze job, as appropriate)
  • CollectorADGroupsGet

AD Group Members is a powerful module – especially when you count in the Login Access Method Audit utility – and it’s already doing a lot of shops quite a lot of good. Write us with questions and comments any time at, and get more information on our Minion Enterprise YouTube playlist.

The next article is our very last one in this series!


ME Trial 11 – Objects, Tables, and Columns (and top 20 features!)

minion enterprise-01

A quick glance behind, and ahead

So last time, we introduced the Database Properties module, and had an op-ed on autogrow.

This time we’ll look at the Objects, Tables, and Columns modules. These are three separate modules – with their own jobs, tables, and so on – but they’re similar enough to talk about together. Our newsletter, our rules, right?

We’ll also quickly cover the top 20 features in Minion Enterprise.

The Objects, Tables, and Columns modules

The Objects module collects sys.objects data from each database.  Get the most recent collection from the Collector.SysObjectsCurrent view. (Note: The Objects Module does not collect data on system tables.)

The Tables module gathers data space used, index space used, rowcounts, and much more for every table, in every database, in every managed instance. For the most recent collection of table data, query Collector.TablePropertiesCurrent.

The Columns module collects data on table columns, including all of the type information, nullability, whether the column is computed or sparse, and so on.  (Note: By default, Minion Enterprise only logs column data for Gold level servers.)

What can we do with this?  The collection for SQL objects is extremely useful for determining when objects come and go from databases, and to investigate when an object might be missing from certain servers.

You can use collected table data to track specific table growth over time, see when the table was last modified, report on file groups, search for triggers, find replicated tables, and so on.

Use table column data to, for example, detect changes to tables over time, compare the data types for similarly named columns across your enterprise, or search for common issues (such as VARCHAR(1), or deprecated data types).

Objects in these modules


  • Collector.SysObjects – Stores the collections of database objects data.
  • Collector.TableProperties– Stores the collections of table data.
  • Collector.TableColumns – Stores the collections of column data.


Each of the tables above have a %Current and a %Previous view, for the most current collection, and the next-to-most current collection.

Top 20 Features

Minion Enterprise (or just, “ME”) by MinionWare, LLC is an enterprise management solution for SQL Server.  ME gives a database administrator an unprecedented amount of power over the enterprise, through extensive data collection, smart alerting, and the means to easily configure important settings across multiple instances. The DBA stands at the center of a wealth of information, with the levers to configuration close at hand.

Once installed and configured with a server list, ME begins to collect data about each server right away, and begins alerting as needed. Changes in settings, database lists, stopped and started services, and more are automatically pulled into the Collector tables.

Furthermore, Minion Enterprise allows you to configure settings on the local repository, and then it automatically pushes those changes out to the appropriate instances. Run a single UPDATE statement to set file growth rates for a single instance – or across the enterprise – or to enable the sp_configure option ‘optimize for ad hoc workloads’.

For a one page PDF of Minion Enterprise highlights, visit

Twenty of the very best features of Minion Enterprise are, in a brief:

  1. Fast, simple setup and configuration – We have designed Minion Enterprise to set up as quickly as possible.  You’re up and running in less than ten minutes: collecting data, alerting, and scripting out schemas automatically.
  2. Central Server List – Keep a central list of SQL Server servers, and which applications they belong to. This central list is beneficial for tracking your enterprise, auditing, and onboarding new staff.
  3. Central Configuration – Centrally configure and manage SQL Server within Minion Enterprise. Make your changes inside Minion, and it then pushes your changes to all of the managed servers. ME even provides you the option of enforcing server-level (sp_configure) configuration values. If someone makes a change to the servers, ME will change it back to conform to policy.
  4. Windows Group Expansion – See exactly who has what permissions via all Windows groups, even when users are nested several levels deep in Active Directory.  ME makes it easy to display AD users and permission inheritance across one or more servers; and to research SQL Server access for just one user, across multiple servers.
  5. Service Down Alerting – Alert on SQL Server services that have stopped, across the whole enterprise.
  6. Disk Space Tracking and Alerting – Report on the disk space usage across your enterprise, and define space alert thresholds for specific disks.
  7. Routine Database Object Scripting – Script out all database objects regularly in order to retrieve schema changes. For example, if someone makes a change to a stored procedure on the wrong server, you have a record of the script before the change.
  8. Consolidated Alerts – Centralized, consolidated alerts for all servers. This prevents “alert storming” support personnel, so your alerts are truly meaningful again.
  9. Replication Tracking – Track replication latency, and alert when it passes your custom threshold.
  10. Track Table Sizes –  Query for data space used, index space used, and rowcounts for every table, in every database, in every managed instance.
  11. Central Index Research – ME collects index information from all managed servers. So, it’s easy to see which databases have, for example, the most clustered GUIDs, the most impactful missing indexes, and so on.
  12. Search Error Logs – Set up ongoing search terms for SQL Server and SQL Agent error logs, across the entire enterprise.
  13. Low Footprint – Minion Enterprise is a management system with central configuration, data collection, reporting, and alerting. It is not a traditional monitoring solution, and has very light resource overhead. Even better: ME drops absolutely zero objects on managed servers!
  14. Logical Server Grouping – Group servers by applications, and by service level (for example, Gold, Silver, and Bronze). This allows you to perform actions against only one application’s servers, against only that application’s production servers, against only Gold level servers, and so on.
  15. Backups Alerting – Minion Enterprise alerts on missed backups, even when a backup job didn’t run. For example, if SQL Server Agent is down on a managed instance, ME will still alert on missed backups.
  16. Alert on Database Changes – Query and alert on any database property change.
  17. Database Create/Drop History – Retain history of database creation and deletion.
  18. Centralized SID Server – Keep a central list of SQL Server logins, and their assigned ID number (“SID”). Standardizing login SIDs across your enterprise prevents the common orphaned users issue.
  19. Integrates with free modules – Minion Enterprise integrates very easily with the free MinionWare modules: Minion Backup, Minion Reindex, and Minion CheckDB (coming early 2016).
  20. Data Archiving – Minion Enterprise includes a process to archive out collector data, and any other data that grows over time.

Objects, Tables, and Columns – this is a prime example of our philosophy, “Log everything, report on anything”.  Write us with questions and comments any time at, and get more information on our Minion Enterprise YouTube playlist.

You only have a few days left of your Minion Enterprise 30 day trial!
Write to us today at for a demo and a quote.

Next time we’ll talk about AD Group Members.