(Republishing, or using this info in a commercial product/website, is prohibited without permission. All other uses are permitted. If in doubt, please ask.)

PERFORMANCE_COUNTERS_RWLOCK

(Back to main page…)

Description:

This wait type is when a thread is waiting for synchronization on the performance counter structures when adding or removing an instance of a performance counter.

(Books Online description: N/A)

Questions/comm

Questions/comments on this wait type? Click here to send Paul an email, especially if you have any information to add to this topic.

Added in SQL Server version:

2008

Removed in SQL Server version:

N/A

Extended Events wait_type value:

The map_key value in sys.dm_xe_map_values is 597 in 2008 and 2008 R2, 676 in 2012, and 694 in 2014 RTM. After 2014 RTM, you must check the DMV to get the latest value as some map_key values have changed in later builds.

Other information:

I have not seen this wait type be a noticeable contention point.

Known occurrences in SQL Server (list number matches call stack list):

  1. Adding an instance of a per-database counter (in this case, while starting up a database during instance startup)

Abbreviated call stacks (list number matches known occurrences list):

  1. SOS_Task::PostWait+9e
    EventInternal<SuspendQueueSLock>::Wait+2aa
    SOS_RWLock::GetLongWait+10b
    PerfmonManager::AddInstance+2ae
    CMEDDbCaches::CreatePerfCounters+84
    CMEDDbCaches::Init+240
    CMEDDatabase::Init+6f
    CreateSqlDatabaseMetadata+7b
    DBTABLE::Init+6f1
    DBMgr::InitAndSetDB+74c
    DBMgr::StartupDB+4b7
    DBMgr::StartDBsInParallel+511
    DBMgr::ParallelDbStartupEntryPoint+10f
    SOS_Task::Param::Execute+21e
    SOS_Scheduler::RunTask+ab