sys.dm_os_performance_counters (Transact-SQL)

SQL Server 2012

Returns a row per performance counter maintained by the server. For information about each performance counter, see Use SQL Server Objects.

Column name

Data type




Category to which this counter belongs.



Name of the counter.



Name of the specific instance of the counter. Often contains the database name.



Current value of the counter.

Note Note

For per-second counters, this value is cumulative. The rate value must be calculated by sampling the value at discrete time intervals. The difference between any two successive sample values is equal to the rate for the time interval used.



Type of counter as defined by the Windows performance architecture. See WMI Performance Counter Types on MSDN or your Windows Server documentation for more information on performance counter types.

If the installation instance of SQL Server fails to display the performance counters of the Windows operating system, use the following Transact-SQL query to confirm that performance counters have been disabled.

SELECT COUNT(*) from sys.dm_os_performance_counters;

If the return value is 0 rows, this means that the performance counters have been disabled. You should then look at the setup log and search for error 3409, "Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions." This denotes that performance counters were not enabled. The errors immediately before the 3409 error should indicate the root cause for the failure of performance counter enabling. For more information about setup log files, see View and Read SQL Server Setup Log Files.

Requires VIEW SERVER STATE permission on the server.

The following example returns performance counter values.

SELECT object_name, counter_name, instance_name, cntr_value, cntr_type
FROM sys.dm_os_performance_counters;