Server.EnumPerformanceCounters Method (String, String, String)
Enumerates a list of performance counters that are supported by the instance of SQL Server for a specified object, for a specified counter, and on the specified instance of SQL Server.
Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)
Syntax
'Declaration
Public Function EnumPerformanceCounters ( _
    objectName As String, _
    counterName As String, _
    instanceName As String _
) As DataTable
'Usage
Dim instance As Server
Dim objectName As String
Dim counterName As String
Dim instanceName As String
Dim returnValue As DataTable
returnValue = instance.EnumPerformanceCounters(objectName, _
    counterName, instanceName)
public DataTable EnumPerformanceCounters(
    string objectName,
    string counterName,
    string instanceName
)
public:
DataTable^ EnumPerformanceCounters(
    String^ objectName, 
    String^ counterName, 
    String^ instanceName
)
member EnumPerformanceCounters : 
        objectName:string * 
        counterName:string * 
        instanceName:string -> DataTable 
public function EnumPerformanceCounters(
    objectName : String, 
    counterName : String, 
    instanceName : String
) : DataTable
Parameters
- objectName
 Type: System.String
 A String value that specifies the object on which to limit the results.
- counterName
 Type: System.String
 A String value that specifies the counter name on which to limit the results.
- instanceName
 Type: System.String
 A String value that specifies the instance of SQL Server.
Return Value
Type: System.Data.DataTable
A DataTable object value that contains a list of performance counters supported by the instance of SQL Server. The table describes the different columns of the returned DataTable.
| Column | Data type | Description | 
| ObjectName | The name of the performance counter object. The SqlServer.ExecStatistics object, for example. | |
| CounterName | The name of the performance counter. The Distributed Query counter, for example. | |
| InstanceName | The name of the measurement to be taken. The Exec started per second instance, for example. | 
Remarks
This method enumerates all the performance counters available in SQL Server that you could use to create a performance alert. You can also see the performance counters listed in Using SQL Server Objects.
Examples
C#
Server srv = new Server("(local)");
DataTable d = srv.EnumPerformanceCounters("SqlServer:CLR", "CLR Execution", "");
foreach (DataRow r in d.Rows)
{
   Console.WriteLine("============================================");
   foreach(DataColumn c in d.Columns)
   {
      Console.WriteLine(c.ColumnName + " = " + r[c].ToString());
   }
}
PowerShell
$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$d = $srv.EnumPerformanceCounters("SqlServer:CLR", "CLR Execution", "")
foreach ($r in $d.Rows)
{
   Write-Host "============================================"
   Foreach ($c in $d.Columns)
   {
      Write-Host $c.ColumnName "=" $r[$c]
   }
}
See Also