Collect and store historical SQL Server performance counter data with DMVs

Problem

I’d like to capture and store specific SQL Server performance counters over time, but I don’t want to have to set up Performance Monitor to run on each of my SQL Servers – I have too many, and it would take too much hands-on-keyboard computer time to put that plan in play. Do you have any suggestions?

Solution

As a matter of fact I do have a process in mind that I use in my own organization. It builds upon some of the concepts I have written about over the years in various tips here at MSSQLTips.com. I am going to give you a bit of reading homework first since what I will be discussing here depends upon understanding of running scripts against multiple SQL Server instances at one time and familiarity with a specific Dynamic Management View: sys.dm_os_performance_counters.  This tip actually builds upon a framework I outlined in the last tip listed below, but I’ve improved upon the solution presented at that time by accomodating named instances and also providing the code for a SQL Agent Job that will allow for the automatic collection of results for trending.

Please take a look over the three tips I’ve previously published on the subjects of running the same command against multiple instances and on the sys.dm_os_performance_counters Dynamic Management View:

This process involves three steps, each described separately below.

Step One

Create the Registered Server Group for the SQL Instances you intend to push this solution. I tend to do this step in three phases:

  • Two test instances (one default instance and one named instance – you’ll see why shortly when we look at the results that are returned for queries against sys.dm_os_performance_counters for named instances.)
  • A group of remaining non-production SQL instances since I intend to push out the solution and monitor its behavior for a couple days before I push to production servers.
  • The production instances of SQL Server that I intend to run this process for monitoring.

It should be noted that since we’re dealing with Dynamic Management Views that this solution will only work for SQL Server 2005 and newer. Only for the purposes of this article have I created the MSSQLTips registered servers group.  It contains two instances: the default instance and the MAPS named instance.

ssms registered servers

Before proceeding I’d like to show you quickly what to expect when you query sys.dm_os_performance_counters.  If you read the tip I provided above you’ll have a good understanding of what to expect – for the default instance.  However, the results are different for named instances when it comes to the [object_name] column values.  Let’s take a look at the results of a simple query against this DMV for both a default and named instance and you’ll see what I mean, furthermore it will lead you to understand some of the dynamic T/SQL I employ in the next step when I populate the list of counters I intend to persist.

<span style="color: blue;">SELECT </span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[instance_name]</span><span style="color: gray;">, </span><span style="color: black;">[cntr_value]<br></span><span style="color: blue;">FROM </span><span style="color: black;">sys.dm_os_performance_counters <br></span><span style="color: blue;">WHERE </span><span style="color: black;">counter_name </span><span style="color: blue;">= </span><span style="color: red;">'Buffer cache hit ratio'</span><span style="color: gray;">;</span>

When run against the default instance the results appear as such:

buffer cache hit ratio

When run against a named instance you’ll see the results differ when it comes to the object_name column:

buffer cache hit ratio

You’ll see in the next step how I account for the fact that the instance name is integrated into the object_name value. 

Step Two

I utilize a dedicated database on all my SQL Servers to host tables, views, stored procedures and functions to run in a uniform fashion against all my SQL Server databases and instances. 

Here at MSSQLTips I’ve always referred to it as iDBA (named changed to protect the innocent DBA.)  So, in my iDBA database (or whatever name you prefer on your SQL Servers) I create the necessary objects to support the data collection process from sys.dm_os_performance_counters:

  • MetaBOT schema
  • MetaBOT.dm_os_performance_counters table – hosts the collected results from sys.dm_os_performance_counters
  • MetaBOT.watched_counters table – hosts the counters that I intend to collect
<span style="color: blue;">USE </span><span style="color: black;">[iDBA]</span><span style="color: gray;">;<br></span><span style="color: black;">GO<br><br></span><span style="color: blue;">CREATE SCHEMA </span><span style="color: black;">MetaBOT </span><span style="color: blue;">AUTHORIZATION </span><span style="color: black;">dbo</span><span style="color: gray;">;<br></span><span style="color: black;">GO<br><br></span><span style="color: blue;">IF </span><span style="color: gray;">NOT EXISTS (</span><span style="color: blue;">SELECT </span><span style="color: black;">name </span><span style="color: blue;">FROM </span><span style="color: black;">iDBA.sys.[tables] T </span><span style="color: blue;">WHERE </span><span style="color: black;">name </span><span style="color: blue;">= </span><span style="color: red;">'dm_os_performance_counters'</span><span style="color: gray;">)<br></span><span style="color: blue;">CREATE TABLE </span><span style="color: black;">[MetaBOT].[dm_os_performance_counters]<br></span><span style="color: gray;">(<br></span><span style="color: black;">[object_name] </span><span style="color: blue;">NVARCHAR</span><span style="color: gray;">(</span><span style="color: black;">128</span><span style="color: gray;">),<br></span><span style="color: black;">[counter_name] </span><span style="color: blue;">NVARCHAR</span><span style="color: gray;">(</span><span style="color: black;">128</span><span style="color: gray;">),<br></span><span style="color: black;">[instance_name] </span><span style="color: blue;">NVARCHAR</span><span style="color: gray;">(</span><span style="color: black;">128</span><span style="color: gray;">),<br></span><span style="color: black;">[cntr_value] bigint</span><span style="color: gray;">,<br></span><span style="color: black;">[date_stamp] </span><span style="color: blue;">DATETIME<br></span><span style="color: gray;">);<br><br></span><span style="color: blue;">IF </span><span style="color: gray;">NOT EXISTS (</span><span style="color: blue;">SELECT </span><span style="color: black;">name </span><span style="color: blue;">FROM </span><span style="color: black;">iDBA.sys.[tables] T </span><span style="color: blue;">WHERE </span><span style="color: black;">name </span><span style="color: blue;">= </span><span style="color: red;">'watched_counters'</span><span style="color: gray;">)<br></span><span style="color: blue;">CREATE TABLE </span><span style="color: black;">[iDBA].[MetaBOT].[watched_counters]<br></span><span style="color: gray;">(<br></span><span style="color: black;">[object_name] </span><span style="color: blue;">NVARCHAR</span><span style="color: gray;">(</span><span style="color: black;">128</span><span style="color: gray;">),<br></span><span style="color: black;">[counter_name] </span><span style="color: blue;">NVARCHAR</span><span style="color: gray;">(</span><span style="color: black;">128</span><span style="color: gray;">),<br></span><span style="color: black;">[active] bit<br></span><span style="color: gray;">);<br><br></span><span style="color: black;">GO</span>

I then populate the MetaBOT.watched_counters table with values and finally create a stored procedure that I can call from inside a scheduled SQL Server Agent job to populate the MetaBOT.dm_os_performance_counters table on a consistent basis.  This is where I account for the named instance’s impact on the object_name column by building the value dynamically based upon the core object name and the instance name as derived from use of the @@SERVICENAME constant:

<span style="color: green;">--+-- Now populate the watched counters table based upon instance properties<br></span><span style="color: blue;">DECLARE </span><span style="color: rgb(67, 67, 67);">@NamedInstance </span><span style="color: black;">bit<br></span><span style="color: blue;">DECLARE </span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: blue;">VARCHAR</span><span style="color: gray;">(</span><span style="color: black;">50</span><span style="color: gray;">)<br></span><span style="color: blue;">SELECT </span><span style="color: rgb(67, 67, 67);">@NamedInstance </span><span style="color: blue;">= </span><span style="color: black;">1<br><br></span><span style="color: blue;">IF </span><span style="color: rgb(67, 67, 67);">@@SERVICENAME </span><span style="color: blue;">= </span><span style="color: red;">'MSSQLSERVER'<br></span><span style="color: blue;">BEGIN<br>SELECT </span><span style="color: rgb(67, 67, 67);">@NamedInstance </span><span style="color: blue;">= </span><span style="color: black;">0  </span><span style="color: green;">--This is the default instance<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Buffer cache hit ratio'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Buffer cache hit ratio base'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Database pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Free pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page life expectancy'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page lookups/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page reads/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page writes/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Reserved pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Stolen pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Target pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Total pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Cursor Manager by Type'</span><span style="color: gray;">, </span><span style="color: red;">'Active cursors'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Active Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Data File(s) Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Log File(s) Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Log File(s) Used Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Percent Log Used'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Transactions/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Exec Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'DTC calls'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Exec Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'OLEDB calls'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_namme]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:General Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:General Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'User Connections'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Latches'</span><span style="color: gray;">, </span><span style="color: red;">'Latch Waits/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Latches'</span><span style="color: gray;">, </span><span style="color: red;">'Total Latch Wait Time (ms)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Locks'</span><span style="color: gray;">, </span><span style="color: red;">'Average Wait Time (ms)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Locks'</span><span style="color: gray;">, </span><span style="color: red;">'Lock Wait Time (ms)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Memory Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Target Server Memory (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Memory Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Total Server Memory (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Plan Cache'</span><span style="color: gray;">, </span><span style="color: red;">'Cache Hit Ratio'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Plan Cache'</span><span style="color: gray;">, </span><span style="color: red;">'Cache Hit Ratio Base'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Plan Cache'</span><span style="color: gray;">, </span><span style="color: red;">'Cache Pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:SQL Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Batch Requests/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Free Space in tempdb (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Longest Transaction Running Time'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'NonSnapshot Version Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Snapshot Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Update Snapshot Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Version Store Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Lock waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Log buffer waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Log write waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Memory grant queue waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Network IO waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Non-Page latch waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Page IO latch waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Page latch waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Thread-safe memory objects waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Transaction ownership waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Wait for the worker'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br></span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: red;">'SQLServer:Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Workspace synchronization waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br></span><span style="color: blue;">END<br><br>ELSE <br>BEGIN<br>   </span><span style="color: green;">--Account for named instance when adding object names to watch<br>   </span><span style="color: blue;">SELECT </span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: blue;">= </span><span style="color: red;">'MSSQL$' </span><span style="color: gray;">+ </span><span style="color: rgb(67, 67, 67);">@@SERVICENAME<br>   <br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Buffer cache hit ratio'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br>   <br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Buffer cache hit ratio base'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Database pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Free pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page life expectancy'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page lookups/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page reads/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Page writes/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Reserved pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Stolen pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Target pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Buffer Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Total pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Cursor Manager by Type'</span><span style="color: gray;">, </span><span style="color: red;">'Active cursors'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Active Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Data File(s) Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Log File(s) Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Log File(s) Used Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Percent Log Used'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Databases'</span><span style="color: gray;">, </span><span style="color: red;">'Transactions/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Exec Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'DTC calls'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Exec Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'OLEDB calls'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':General Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':General Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'User Connections'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Latches'</span><span style="color: gray;">, </span><span style="color: red;">'Latch Waits/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Latches'</span><span style="color: gray;">, </span><span style="color: red;">'Total Latch Wait Time (ms)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Locks'</span><span style="color: gray;">, </span><span style="color: red;">'Average Wait Time (ms)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Locks'</span><span style="color: gray;">, </span><span style="color: red;">'Lock Wait Time (ms)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Memory Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Target Server Memory (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Memory Manager'</span><span style="color: gray;">, </span><span style="color: red;">'Total Server Memory (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Plan Cache'</span><span style="color: gray;">, </span><span style="color: red;">'Cache Hit Ratio'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br>   <br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Plan Cache'</span><span style="color: gray;">, </span><span style="color: red;">'Cache Hit Ratio Base'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Plan Cache'</span><span style="color: gray;">, </span><span style="color: red;">'Cache Pages'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':SQL Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Batch Requests/sec'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Free Space in tempdb (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Longest Transaction Running Time'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'NonSnapshot Version Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Snapshot Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Update Snapshot Transactions'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Transactions'</span><span style="color: gray;">, </span><span style="color: red;">'Version Store Size (KB)'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Lock waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Log buffer waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Log write waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Memory grant queue waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Network IO waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Non-Page latch waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Page IO latch waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Page latch waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Thread-safe memory objects waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Transaction ownership waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Wait for the worker'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br><br>   </span><span style="color: blue;">INSERT INTO </span><span style="color: black;">[MetaBOT].[watched_counters] </span><span style="color: gray;">(</span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">, </span><span style="color: black;">[active]</span><span style="color: gray;">)<br>   </span><span style="color: blue;">VALUES </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@ObjectNamePrefix </span><span style="color: gray;">+ </span><span style="color: red;">':Wait Statistics'</span><span style="color: gray;">, </span><span style="color: red;">'Workspace synchronization waits'</span><span style="color: gray;">, </span><span style="color: black;">1</span><span style="color: gray;">);<br></span><span style="color: blue;">END </span>

You may note that I track quite a few counters here – I figure if I go through the effort of setting this up then I may as well capture too much than not enough.  Depending upon your environment and the number of databases you’re hosting you may wish to persist fewer counters.  Some of these counters exist in a 1:1 relationship to your database count.  I did calculations based upon my most-populous instance and determined that each row of data persisted averaged 232 bytes; from there I then looked at how frequently I ran the associated collection job impacted the amount of data I was storing.  Running the collection process every 10 minutes was estimated to yeild 1.5 gb/month.  Increasing the frequency to every two minutes meant increasing the storage required to 8 gb/month – and this was for a single instance.

Now it’s time to create the stored procedure that you’ll call from inside that SQL Server Agent job.  It is a simple INSERT statement from sys.dm_os_performance_counters filtered through an INNER JOIN against the MetaBOT.watched_counters table we created and populated in the last step.  I didn’t bother with creating any indexes in that table as it is so small that the optimizer would choose to scan the table instead of using the index.  The maintance overhead of an unused index is unwarranted.

<span style="color: blue;">CREATE PROCEDURE </span><span style="color: black;">MetaBOT.usp_collect_perfmon_counters </span><span style="color: blue;">AS<br>DECLARE </span><span style="color: rgb(67, 67, 67);">@datestamp </span><span style="color: blue;">DATETIME<br>SELECT </span><span style="color: rgb(67, 67, 67);">@datestamp </span><span style="color: blue;">= </span><span style="color: magenta;">GETDATE</span><span style="color: gray;">()<br></span><span style="color: blue;">INSERT INTO </span><span style="color: black;">MetaBOT.[dm_os_performance_counters]<br>  </span><span style="color: gray;">(<br>        </span><span style="color: black;">[object_name]</span><span style="color: gray;">,<br>        </span><span style="color: black;">[counter_name]</span><span style="color: gray;">,<br>        </span><span style="color: black;">[instance_name]</span><span style="color: gray;">,<br>        </span><span style="color: black;">[cntr_value]</span><span style="color: gray;">,<br>        </span><span style="color: black;">[date_stamp]<br>  </span><span style="color: gray;">)<br>  </span><span style="color: blue;">SELECT<br>      </span><span style="color: black;">DOPC.[object_name]</span><span style="color: gray;">,<br>      </span><span style="color: black;">DOPC.[counter_name]</span><span style="color: gray;">,<br>      </span><span style="color: black;">DOPC.[instance_name]</span><span style="color: gray;">,<br>      </span><span style="color: black;">DOPC.[cntr_value]</span><span style="color: gray;">,<br>  </span><span style="color: rgb(67, 67, 67);">@datestamp<br>  </span><span style="color: blue;">FROM  </span><span style="color: black;">sys.[dm_os_performance_counters] DOPC<br>      </span><span style="color: blue;">INNER JOIN </span><span style="color: black;">iDBA.[MetaBOT].[watched_counters] WC<br>      </span><span style="color: blue;">ON </span><span style="color: black;">[DOPC].[object_name] </span><span style="color: blue;">= </span><span style="color: black;">[WC].[object_name]<br>    </span><span style="color: gray;">AND </span><span style="color: black;">[DOPC].[counter_name] </span><span style="color: blue;">= </span><span style="color: black;">[WC].[counter_name]<br>  </span><span style="color: blue;">ORDER BY </span><span style="color: black;">[object_name]</span><span style="color: gray;">, </span><span style="color: black;">[counter_name]</span><span style="color: gray;">;</span>

Step Three

The final step involves creating the actual job to run on each instance for collection of counter values.

What I find easiset to do when coding SQL Agent Job creation is to build the job in the SQL Server Mangement Studio GUI and then script it out.  That is what I did here.  There is one change you need to make when doing this however – you must either remove or comment-out the line of code that presents the job_id GUID for output.  It’s not needed and will cause the script to fail across all but the initial instance when run.  There is a single variable in this code that allows you to set how frequently the job runs (@RunEveryXMinutes); set the value equal to the number of minutes you want to expire between job runs.

<span style="color: blue;">USE </span><span style="color: black;">[msdb]<br>GO<br>      </span><span style="color: green;">/****** Object:  Job [Metadata_Collect_SQL_Perfmon_Counters]    Script Date: 12/09/2010 12:14:38 ******/<br>  </span><span style="color: blue;">BEGIN TRANSACTION<br>  DECLARE </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">INT<br>  DECLARE </span><span style="color: rgb(67, 67, 67);">@RunEveryXMinutes </span><span style="color: black;">TINYINT<br>  </span><span style="color: blue;">SELECT </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">= </span><span style="color: black;">0<br>  </span><span style="color: blue;">SELECT </span><span style="color: rgb(67, 67, 67);">@RunEveryXMinutes </span><span style="color: blue;">= </span><span style="color: black;">10<br>        </span><span style="color: green;">/****** Object:  JobCategory [Tuning and Optimization]    Script Date: 12/09/2010 12:14:39 ******/<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">NOT EXISTS (<br>    </span><span style="color: blue;">SELECT </span><span style="color: black;">name <br>      </span><span style="color: blue;">FROM </span><span style="color: black;">msdb.dbo.syscategories <br>      </span><span style="color: blue;">WHERE </span><span style="color: black;">name</span><span style="color: blue;">=</span><span style="color: red;">N'Tuning and Optimization' <br>        </span><span style="color: gray;">AND </span><span style="color: black;">category_class</span><span style="color: blue;">=</span><span style="color: black;">1</span><span style="color: gray;">)<br>    </span><span style="color: blue;">BEGIN<br>    EXEC </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">= </span><span style="color: black;">msdb.dbo.</span><span style="color: darkred;">sp_add_category </span><span style="color: rgb(67, 67, 67);">@class</span><span style="color: blue;">=</span><span style="color: red;">N'JOB'</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@type</span><span style="color: blue;">=</span><span style="color: red;">N'LOCAL'</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@name</span><span style="color: blue;">=</span><span style="color: red;">N'Tuning and Optimization'<br>    </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@ERROR </span><span style="color: gray;"><> </span><span style="color: black;">0 <br>          </span><span style="color: gray;">OR </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: gray;"><> </span><span style="color: black;">0</span><span style="color: gray;">) </span><span style="color: blue;">GOTO </span><span style="color: black;">QuitWithRollback<br>      </span><span style="color: blue;">END<br>  DECLARE </span><span style="color: rgb(67, 67, 67);">@jobId </span><span style="color: blue;">BINARY</span><span style="color: gray;">(</span><span style="color: black;">16</span><span style="color: gray;">)<br>  </span><span style="color: blue;">EXEC </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">=  </span><span style="color: black;">msdb.dbo.</span><span style="color: darkred;">sp_add_job </span><span style="color: rgb(67, 67, 67);">@job_name</span><span style="color: blue;">=</span><span style="color: red;">N'Metadata_Collect_SQL_Perfmon_Counters'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@enabled</span><span style="color: blue;">=</span><span style="color: black;">1</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@notify_level_eventlog</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@notify_level_email</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@notify_level_netsend</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@notify_level_page</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@delete_level</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@description</span><span style="color: blue;">=</span><span style="color: red;">N'Poll and store output from sys.dm_os_performance_counters'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@category_name</span><span style="color: blue;">=</span><span style="color: red;">N'Tuning and Optimization'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@owner_login_name</span><span style="color: blue;">=</span><span style="color: red;">N'SPECTRUM-HEALTH\svcSQLNotify'</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@job_id </span><span style="color: blue;">= </span><span style="color: rgb(67, 67, 67);">@jobId </span><span style="color: black;">OUTPUT<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@ERROR </span><span style="color: gray;"><> </span><span style="color: black;">0 <br>          </span><span style="color: gray;">OR </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: gray;"><> </span><span style="color: black;">0</span><span style="color: gray;">) </span><span style="color: blue;">GOTO </span><span style="color: black;">QuitWithRollback<br>          </span><span style="color: green;">/****** Object:  Step [Collect Metadata]    Script Date: 12/09/2010 12:14:39 ******/<br>    </span><span style="color: blue;">EXEC </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">= </span><span style="color: black;">msdb.dbo.</span><span style="color: darkred;">sp_add_jobstep </span><span style="color: rgb(67, 67, 67);">@job_id</span><span style="color: blue;">=</span><span style="color: rgb(67, 67, 67);">@jobId</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@step_name</span><span style="color: blue;">=</span><span style="color: red;">N'Collect Metadata'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@step_id</span><span style="color: blue;">=</span><span style="color: black;">1</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@cmdexec_success_code</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@on_success_action</span><span style="color: blue;">=</span><span style="color: black;">1</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@on_success_step_id</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@on_fail_action</span><span style="color: blue;">=</span><span style="color: black;">2</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@on_fail_step_id</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@retry_attempts</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@retry_interval</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@os_run_priority</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@subsystem</span><span style="color: blue;">=</span><span style="color: red;">N'TSQL'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@command</span><span style="color: blue;">=</span><span style="color: red;">N'EXEC MetaBOT.usp_collect_perfmon_counters;'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@database_name</span><span style="color: blue;">=</span><span style="color: red;">N'iDBA'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@flags</span><span style="color: blue;">=</span><span style="color: black;">0<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@ERROR </span><span style="color: gray;"><> </span><span style="color: black;">0 <br>        </span><span style="color: gray;">OR </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: gray;"><> </span><span style="color: black;">0</span><span style="color: gray;">) </span><span style="color: blue;">GOTO </span><span style="color: black;">QuitWithRollback<br>    </span><span style="color: blue;">EXEC </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">= </span><span style="color: black;">msdb.dbo.</span><span style="color: darkred;">sp_update_job </span><span style="color: rgb(67, 67, 67);">@job_id </span><span style="color: blue;">= </span><span style="color: rgb(67, 67, 67);">@jobId</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@start_step_id </span><span style="color: blue;">= </span><span style="color: black;">1<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@ERROR </span><span style="color: gray;"><> </span><span style="color: black;">0 <br>        </span><span style="color: gray;">OR </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: gray;"><> </span><span style="color: black;">0</span><span style="color: gray;">) </span><span style="color: blue;">GOTO </span><span style="color: black;">QuitWithRollback<br>    </span><span style="color: blue;">EXEC </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">= </span><span style="color: black;">msdb.dbo.</span><span style="color: darkred;">sp_add_jobschedule </span><span style="color: rgb(67, 67, 67);">@job_id</span><span style="color: blue;">=</span><span style="color: rgb(67, 67, 67);">@jobId</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@name</span><span style="color: blue;">=</span><span style="color: red;">N'dm_os_perfmon_counters Job'</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@enabled</span><span style="color: blue;">=</span><span style="color: black;">1</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@freq_type</span><span style="color: blue;">=</span><span style="color: black;">4</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@freq_interval</span><span style="color: blue;">=</span><span style="color: black;">1</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@freq_subday_type</span><span style="color: blue;">=</span><span style="color: black;">4</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@freq_subday_interval</span><span style="color: blue;">=</span><span style="color: rgb(67, 67, 67);">@RunEveryXMinutes</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@freq_relative_interval</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@freq_recurrence_factor</span><span style="color: blue;">=</span><span style="color: black;">0</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@active_start_date</span><span style="color: blue;">=</span><span style="color: black;">20101209</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@active_end_date</span><span style="color: blue;">=</span><span style="color: black;">99991231</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@active_start_time</span><span style="color: blue;">=</span><span style="color: black;">30</span><span style="color: gray;">,<br>    </span><span style="color: rgb(67, 67, 67);">@active_end_time</span><span style="color: blue;">=</span><span style="color: black;">235959<br>    </span><span style="color: green;">-- ,@schedule_uid=N'519325e6-3114-453c-bfeb-6597300a45d2' <---Comment this line out of auto-generated script<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@ERROR </span><span style="color: gray;"><> </span><span style="color: black;">0 <br>        </span><span style="color: gray;">OR </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: gray;"><> </span><span style="color: black;">0</span><span style="color: gray;">) </span><span style="color: blue;">GOTO </span><span style="color: black;">QuitWithRollback<br>    </span><span style="color: blue;">EXEC </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: blue;">= </span><span style="color: black;">msdb.dbo.</span><span style="color: darkred;">sp_add_jobserver </span><span style="color: rgb(67, 67, 67);">@job_id </span><span style="color: blue;">= </span><span style="color: rgb(67, 67, 67);">@jobId</span><span style="color: gray;">, </span><span style="color: rgb(67, 67, 67);">@server_name </span><span style="color: blue;">= </span><span style="color: red;">N'(local)'<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@ERROR </span><span style="color: gray;"><> </span><span style="color: black;">0 <br>        </span><span style="color: gray;">OR </span><span style="color: rgb(67, 67, 67);">@ReturnCode </span><span style="color: gray;"><> </span><span style="color: black;">0</span><span style="color: gray;">) </span><span style="color: blue;">GOTO </span><span style="color: black;">QuitWithRollback<br>    </span><span style="color: blue;">COMMIT TRANSACTION<br>        GOTO </span><span style="color: black;">EndSave<br>        QuitWithRollback:<br>  </span><span style="color: blue;">IF </span><span style="color: gray;">(</span><span style="color: rgb(67, 67, 67);">@@TRANCOUNT </span><span style="color: gray;">> </span><span style="color: black;">0</span><span style="color: gray;">) <br>    </span><span style="color: blue;">ROLLBACK TRANSACTION<br>        </span><span style="color: black;">EndSave:<br>GO</span>

Once activated it’s just the matter of querying the persisted values in the MetaBOT.dm_os_performance_counters table.  I also recommend that you set up a purge command, this can be done as part of the MetaBOT.usp_collect_perfmon_counters stored procedure as a DELETE from the MetaBOT.dm_os_performance_counters table where the date_stamp column is less than whatever threshold you want to set.  Depending upon your needs I would also recommend creating an index on that column if your performance reviews warrant doing so.

In the next tip of this series I’ll examine different ways to disect this data and use it for analysis for such things as consolidation planning or reviewing for good people doing bad things in your databases.  (Think CURSORS! folks!)

Next Steps

Leave a Reply

Your email address will not be published. Required fields are marked *