This is the second part in a series of posts about the data collector in SQL Server 2008. In this post, I will list the measurements that are available from the data collector. This may seem like a strange post, but I could not find this information anywhere on the Internet.

Many DBAs and developers have favorite sets of counters, and a suggestion to use the data collector is often met with the question, "Does it capture x?" For example, does the data collector capture the same counters as Codeplex’s Performance Analysis of Logs (PAL) tool? With the following list, you can both answer that question and advocate for using the data collector instead of other older tools because data accessibility is much better.

A standard management data warehouse database yielded the following list. The data collector is extensible; you can add additional counters as needed. The great thing is that this is entirely canned. You don't have to spend hours adding counters to the Windows Performance Monitor or fiddle with getting them out later for charting. (They are sitting in a database table that you can easily query.)

The data collector captures the following measurements every minute, which is ideal for production monitoring.

Performance Monitor Measurements

· \LogicalDisk(_Total)

  • \% Free Space
  • \% Disk Time
  • \Avg. Disk Queue Length
  • \Avg. Disk Read Queue Length
  • \Avg. Disk Write Queue Length
  • \Disk Writes/sec
  • \Avg. Disk sec/Write
  • \Avg. Disk sec/Transfer
  • \Avg. Disk sec/Read
  • \Disk Bytes/sec
  • \Disk Reads/sec
  • \Split IO/Sec
  • And each disk is listed as an instance for the counter

· \Memory

  • \% Committed Bytes In Use
  • \Available Mbytes
  • \Cache Bytes
  • \Pages/sec

· \PhysicalDisk(_Total)

  • \% Disk Time
  • \% Idle Time
  • \Avg. Disk Bytes/Read
  • \Avg. Disk Bytes/Write
  • \Avg. Disk Queue Length
  • · \Processor(_Total)
  • \% Interrupt Time
  • \% Processor Time

· \SQLServer:Buffer Manager

  • \Buffer cache hit rati

· \System

  • \Processor Queue Length

· \Memory

  • \Available Bytes
  • \Cache Faults/sec
  • \Committed Bytes
  • \Free & ZerPage List Bytes
  • \Modified Page List Bytes
  • \Page Faults/sec
  • \Page Reads/sec
  • \Pool Nonpaged Bytes
  • \Pool Paged Bytes
  • \Standby Cache Core Bytes
  • \Standby Cache Normal Priority Bytes
  • \Standby Cache Reserve Bytes
  • \Write Copies/sec
  • \Process(MsDtsSrvr)\% Processor Time
  • \% Processor Time

· \Network Interface(- card type -)\

  • \Bytes Total/sec
  • \Output Queue Length

· \Process($(TARGETPROCESS))

  • \% User Time
  • \Creating Process ID
  • \Elapsed Time
  • \Handle Count
  • \ID Process
  • \IData Bytes/sec
  • \IData Operations/sec
  • \IOther Operations/sec
  • \IRead Bytes/sec
  • \IRead Operations/sec
  • \IWrite Bytes/sec
  • \IWrite Operations/sec
  • \Page Faults/sec
  • \Page File Bytes Peak
  • \Pool Paged Bytes
  • \Private Bytes
  • \% Privileged Time
  • \Thread Count
  • \Virtual Bytes
  • \Virtual Bytes Peak
  • \Working Set
  • \IOther Bytes/sec
  • \Page File Bytes
  • \Pool Nonpaged Bytes
  • \Priority Base
  • \Working Set – Private
  • \Working Set Peak
  • And the same for each of the following:
    • \Process(_Total)
    • \Process(Idle)
    • \Process(csrss#?)
    • \Process(csrss)
    • \Process(DCEXEC)
    • \Process(DCEXEC#?)
    • \Process(explorer)
    • \Process(fdhost)
    • \Process(fdlauncher)
    • \Process(HbaDiscSrvr)
    • \Process(HbaHsMgr)
    • \Process(jucheck)
    • \Process(lsass)
    • \Process(lsm)
    • \Process(msdtc)
    • \Process(MsDtsSrvr)
    • \Process(RMServer)
    • \Process(services)
    • \Process(SLsvc)
    • \Process(smss)
    • \Process(spoolsv)
    • \Process(SQLAGENT)
    • \Process(sqlwriter)
    • \Process(svchost#?)
    • \Process(System)
    • \Process(taskeng)
    • \Process(taskmgr)
    • \Process(wininit)
    • \Process(winlogon#1)
    • \Process(WmiApSrv)
    • \Process(WmiPrvSE#?)
    • \Process(WmiPrvSE)
    • \Process(cmd)

· \Server Work Queues(?)

  • \Queue Length

· \SQLServer:Buffer Manager

  • \Page life expectancy
  • \Stolen pages

· \SQLServer:Databases(_Total)

  • \Active Transactions
  • \Transactions/sec
  • \SQLServer:Databases(<DatabaseName>)\Active Transactions

· \SQLServer:General Statistics

  • \Logins/sec
  • \Logouts/sec

· \SQLServer:General Statistics

  • \Processes blocked
  • \Transactions
  • \User Connections

· \SQLServer:Memory Manager

  • \Memory Grants Outstanding
  • \Memory Grants Pending

· \SQLServer:Plan Cache(Object Plans)

  • \Cache Hit Ratio

· \SQLServer:Plan Cache(SL Plans)

  • \Cache Hit Ratio

· \SQLServer:Plan Cache(Temporary Tables & Table Variables)

  • \Cache Hit Ratio

· \SQLServer:SQL Statistics

  • \Auto-Param Attempts/sec
  • \Batch Requests/sec
  • \Failed Auto-Params/sec
  • \SQL Attention rate
  • \SQL Compilations/sec
  • \SQL Re-Compilations/sec

· \SQLServer:Transactions

  • \Free Space in tempdb (KB)

· \SQLServer:Workload Group Stats(default)

  • \Active requests

· \SQLServer:Workload Group Stats(default)

  • \Blocked tasks
  • \CPU usage %

· \SQLServer:Workload Group Stats(internal)

  • \Active requests
  • \Blocked tasks
  • \CPU usage %

· \Server Work Queues(Blocking Queue)

  • \Queue Length

· \System

  • \File Control Bytes/sec

· \SQLServer:Databases(tempdb)

  • \Active Transactions
  • \Transactions/sec

· \SQLServer:General Statistics

  • \Active Temp Tables
  • \Logical Connections

· \SQLServer:Plan Cache(_Total)

  • \Cache Hit Rati

· \System

  • \File Control Operations/sec
  • \File Read Bytes/sec
  • \File Read Operations/sec
  • \File Write Bytes/sec
  • \File Write Operations/sec

 

Wait Types

The following three measurements are available for each wait type:

  • · Count
  • · Wait Time in MSec
  • · Signal Wait Time in MSec

The wait types are as follows:

· Backup

  • BACKUP
  • BACKUP_CLIENTLOCK
  • BACKUP_OPERATOR
  • BACKUPBUFFER
  • BACKUPI
  • BACKUPTHREAD
  • DISKIO_SUSPEND

· Buffer I/O

  • ASYNC_DISKPOOL_LOCK
  • ASYNC_IO_COMPLETION
  • FCB_REPLICA_READ
  • FCB_REPLICA_WRITE
  • IO_COMPLETION
  • PAGEIOLATCH_DT
  • PAGEIOLATCH_EX
  • PAGEIOLATCH_KP
  • PAGEIOLATCH_NL
  • PAGEIOLATCH_SH
  • PAGEIOLATCH_UP
  • REPLICA_WRITES

· Buffer Latch

  • PAGELATCH_DT
  • PAGELATCH_EX
  • PAGELATCH_KP
  • PAGELATCH_NL
  • PAGELATCH_SH
  • PAGELATCH_UP

· Compilation

  • RESOURCE_SEMAPHORE_MUTEX
  • RESOURCE_SEMAPHORE_QUERY_COMPILE
  • RESOURCE_SEMAPHORE_SMALL_QUERY

· CPU

  • CPU
  • SOS_SCHEDULER_YIELD

· Full Text Search

  • MSSEARCH
  • SOAP_READ
  • SOAP_WRITE

· Idle

  • BROKER_EVENTHANDLER
  • BROKER_RECEIVE_WAITFOR
  • BROKER_TRANSMITTER
  • CHECKPOINT_QUEUE
  • CHKPT
  • CLR_AUTO_EVENT
  • CLR_MANUAL_EVENT
  • FSAGENT
  • KSOURCE_WAKEUP
  • LAZYWRITER_SLEEP
  • LOGMGR_QUEUE
  • ONDEMAND_TASK_QUEUE
  • REQUEST_FOR_DEADLOCK_SEARCH
  • RESOURCE_QUEUE
  • SERVER_IDLE_CHECK
  • SLEEP_BPOOL_FLUSH
  • SLEEP_DBSTARTUP
  • SLEEP_DCOMSTARTUP
  • SLEEP_MSDBSTARTUP
  • SLEEP_SYSTEMTASK
  • SLEEP_TASK
  • SLEEP_TEMPDBSTARTUP
  • SNI_HTTP_ACCEPT
  • SQLTRACE_BUFFER_FLUSH
  • TRACEWRITE
  • WAIT_FOR_RESULTS
  • WAITFOR_TASKSHUTDOWN
  • XE_DISPATCHER_WAIT
  • XE_TIMER_EVENT

· Latch

  • DEADLOCK_ENUM_MUTEX
  • INDEX_USAGE_STATS_MUTEX
  • LATCH_DT
  • LATCH_EX
  • LATCH_KP
  • LATCH_NL
  • LATCH_SH
  • LATCH_UP
  • VIEW_DEFINITION_MUTEX

· Lock

  • LCK_M_BU
  • LCK_M_IS
  • LCK_M_IU
  • LCK_M_IX
  • LCK_M_RIn_NL
  • LCK_M_RIn_S
  • LCK_M_RIn_U
  • LCK_M_RIn_X
  • LCK_M_RS_S
  • LCK_M_RS_U
  • LCK_M_RX_S
  • LCK_M_RX_U
  • LCK_M_RX_X
  • LCK_M_S
  • LCK_M_SCH_M
  • LCK_M_SCH_S
  • LCK_M_SIU
  • LCK_M_SIX
  • LCK_M_U
  • LCK_M_UIX
  • LCK_M_X

· Logging

  • LOGBUFFER
  • LOGMGR
  • LOGMGR_FLUSH
  • LOGMGR_RESERVE_APPEND
  • WRITELOG

· Memory

  • CMEMTHREAD
  • LOWFAIL_MEMMGR_QUEUE
  • RESOURCE_SEMAPHORE
  • SOS_RESERVEDMEMBLOCKLIST
  • SOS_VIRTUALMEMORY_LOW
  • UTIL_PAGE_ALLOC

· Network I/O

  • ASYNC_NETWORK_I
  • DBMIRROR_SEND
  • DTC_STATE
  • MSQL_DQ
  • NET_WAITFOR_PACKET
  • OLEDB

· Other

  • ABR
  • BAD_PAGE_PROCESS
  • BROKER_CONNECTION_RECEIVE_TASK
  • BROKER_ENDPOINT_STATE_MUTEX
  • BROKER_INIT
  • BROKER_MASTERSTART
  • BROKER_REGISTERALLENDPOINTS
  • BROKER_SHUTDOWN
  • BROKER_TASK_STOP
  • BUILTIN_HASHKEY_MUTEX
  • CHECK_PRINT_RECORD
  • CURSOR
  • CURSOR_ASYNC
  • DAC_INIT
  • DBCC_COLUMN_TRANSLATION_CACHE
  • DBMIRROR_DBM_EVENT
  • DBMIRROR_DBM_MUTEX
  • DBMIRROR_EVENTS_QUEUE
  • DBMIRROR_WORKER_QUEUE
  • DBMIRRORING_CMD
  • DBTABLE
  • DEADLOCK_TASK_SEARCH
  • DEBUG
  • DISABLE_VERSIONING
  • DLL_LOADING_MUTEX
  • DROPTEMP
  • DUMP_LOG_COORDINATOR
  • DUMP_LOG_COORDINATOR_QUEUE
  • DUMPTRIGGER
  • EC
  • EE_PMOLOCK
  • EE_SPECPROC_MAP_INIT
  • ENABLE_VERSIONING
  • ERROR_REPORTING_MANAGER
  • EXECUTION_PIPE_EVENT_INTERNAL
  • FAILPOINT
  • FT_RESTART_CRAWL
  • FT_RESUME_CRAWL
  • FULLTEXT GATHERER
  • GUARDIAN
  • HTTP_ENDPOINT_COLLCREATE
  • HTTP_ENUMERATION
  • HTTP_START
  • IMP_IMPORT_MUTEX
  • IMPPROV_IOWAIT
  • INTERNAL_TESTING
  • IO_AUDIT_MUTEX
  • KTM_ENLISTMENT
  • KTM_RECOVERY_MANAGER
  • KTM_RECOVERY_RESOLUTION
  • MIRROR_SEND_MESSAGE
  • MISCELLANEOUS
  • MSQL_SYNC_PIPE
  • MSQL_XP
  • PARALLEL_BACKUP_QUEUE
  • PRINT_ROLLBACK_PROGRESS
  • QNMANAGER_ACQUIRE
  • QPJOB_KILL
  • QPJOB_WAITFOR_ABORT
  • QRY_MEM_GRANT_INFO_MUTEX
  • QUERY_ERRHDL_SERVICE_DONE
  • QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN
  • QUERY_NOTIFICATION_MGR_MUTEX
  • QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX
  • QUERY_NOTIFICATION_TABLE_MGR_MUTEX
  • QUERY_NOTIFICATION_UNITTEST_MUTEX
  • QUERY_OPTIMIZER_PRINT_MUTEX
  • QUERY_REMOTE_BRICKS_DONE
  • QUERY_TRACEOUT
  • RECOVER_CHANGEDB
  • REPL_CACHE_ACCESS
  • REPL_SCHEMA_ACCESS
  • REQUEST_DISPENSER_PAUSE
  • SEC_DROP_TEMP_KEY
  • SEQUENTIAL_GUID
  • SHUTDOWN
  • SNI_CRITICAL_SECTION
  • SNI_HTTP_WAITFOR_0_DISCON
  • SNI_LISTENER_ACCESS
  • SNI_TASK_COMPLETION
  • SOS_CALLBACK_REMOVAL
  • SOS_DISPATCHER_MUTEX
  • SOS_LOCALALLOCATORLIST
  • SOS_OBJECT_STORE_DESTROY_MUTEX
  • SOS_PROCESS_AFFINITY_MUTEX
  • SOS_STACKSTORE_INIT_MUTEX
  • SOS_SYNC_TASK_ENQUEUE_EVENT
  • SOSHOST_EVENT
  • SOSHOST_INTERNAL
  • SOSHOST_MUTEX
  • SOSHOST_RWLOCK
  • SOSHOST_SEMAPHORE
  • SOSHOST_SLEEP
  • SOSHOST_TRACELOCK
  • SOSHOST_WAITFORDONE
  • SQLSORT_NORMMUTEX
  • SQLSORT_SORTMUTEX
  • SQLTRACE_LOCK
  • SQLTRACE_SHUTDOWN
  • SQLTRACE_WAIT_ENTRIES
  • SRVPROC_SHUTDOWN
  • TEMPOBJ
  • THREADPOOL
  • TIMEPRIV_TIMEPERIOD
  • VIA_ACCEPT
  • WAITSTAT_MUTEX
  • WCC
  • WORKTBL_DROP
  • XE_BUFFERMGR_ALLPROCECESSED_EVENT
  • XE_BUFFERMGR_FREEBUF_EVENT
  • XE_DISPATCHER_JOIN
  • XE_MODULEMGR_SYNC
  • XE_OLS_LOCK
  • XE_SERVICES_MUTEX
  • XE_SESSION_CREATE_SYNC
  • XE_SESSION_SYNC
  • XE_STM_CREATE
  • XE_TIMER_MUTEX
  • XE_TIMER_TASK_DONE

· Parallelism

  • CXPACKET
  • EXCHANGE
  • EXECSYNC

· SQLCLR

  • ASSEMBLY_LOAD
  • CLR_CRST
  • CLR_JOIN
  • CLR_MEMORY_SPY
  • CLR_MONITOR
  • CLR_RWLOCK_READER
  • CLR_RWLOCK_WRITER
  • CLR_SEMAPHORE
  • CLR_TASK_START
  • CLRHOST_STATE_ACCESS
  • FS_GARBAGE_COLLECTOR_SHUTDOWN
  • SQLCLR_APPDOMAIN
  • SQLCLR_ASSEMBLY
  • SQLCLR_DEADLOCK_DETECTION
  • SQLCLR_QUANTUM_PUNISHMENT

· Transaction

  • DTC
  • DTC_ABORT_REQUEST
  • DTC_RESOLVE
  • DTC_TMDOWN_REQUEST
  • DTC_WAITFOR_OUTCOME
  • MSQL_XACT_MGR_MUTEX
  • MSQL_XACT_MUTEX
  • TRAN_MARKLATCH_DT
  • TRAN_MARKLATCH_EX
  • TRAN_MARKLATCH_KP
  • TRAN_MARKLATCH_NL
  • TRAN_MARKLATCH_SH
  • TRAN_MARKLATCH_UP
  • TRANSACTION_MUTEX
  • XACT_OWN_TRANSACTION
  • XACT_RECLAIM_SESSION
  • XACTLOCKINF
  • XACTWORKSPACE_MUTEX

· User Waits

  • WAITFOR

That's the list. You have more counters than you can recite from memory! If you have an evil streak, the next time that you interview a job candidate, ask them, "If the wait type LCK_M_RIn_X has a high count, what does it signify?"


Ken Lassesen is part of the original team that created Dr. GUI of MSDN and specializes in new and resurrected commercial product architecture. He developed architecture for several Microsoft websites, including the original MSDN site and the current Microsoft Partner Network site. He's equally at home with SQL Server, XHTML, Section 508 accessibility standards, globalization, Security Content Automation Protocol (SCAP) security, C#, and ASP.NET server controls. When he is not having fun with technology, he enjoys taking lunch-break hikes in the North Cascades.