Server.EnumPerformanceCounters Method
Enumerates a list of performance counters that are supported by the instance of SQL Server.
Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)
Syntax
'Declaration
Public Function EnumPerformanceCounters As DataTable
'Usage
Dim instance As Server
Dim returnValue As DataTable
returnValue = instance.EnumPerformanceCounters()
public DataTable EnumPerformanceCounters()
public:
DataTable^ EnumPerformanceCounters()
member EnumPerformanceCounters : unit -> DataTable 
public function EnumPerformanceCounters() : DataTable
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
Visual Basic
Dim srv As Server
srv = New Server
'Call the EnumCollations method and return collation information to DataTable variable.
Dim d As DataTable
'Select the returned data into an array of DataRow.
d = srv.EnumPerformanceCounters()
'Iterate through the rows and display collation details for the instance of SQL Server.
Dim r As DataRow
Dim c As DataColumn
For Each r In d.Rows
   Console.WriteLine("============================================")
      For Each c In r.Table.Columns
      Console.WriteLine(c.ColumnName + " = " + r[c].ToString)
   Next
Next
PowerShell
$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$d = $srv.EnumPerformanceCounters()
Foreach ($r in $d.Rows)
{
   Write-Host "============================================"
   Foreach ($c in $d.Columns)
   {
      Write-Host $c.ColumnName "=" $r[$c]
   }
}
See Also