The DBMIRROR_DBM_MUTEX wait type is undocumented. Or rather, it is documented in books online<\/a> as being \u201cIdentified for informational purposes only. Not supported. Future compatibility is not guaranteed.\u201d Paul Randal had some additional information on this wait type in his \u201cWait statistics, or please tell me where it hurts<\/a>\u201d post, defining the wait type as \u201c\u2026 contention for the send buffer that database mirroring shares between all the mirroring sessions on a server. It could indicate that you’ve got too many mirroring sessions.\u201d<\/p>\n I saw one forum entry where someone said \u201cyou can ignore\u201d the DBMIRROR_DBM_MUTEX wait type because, basically, it is undocumented. This assumes that Microsoft only documents wait types that we should care about \u2013 but this really isn\u2019t the case.<\/p>\n A few months ago I had a discussion with a DBA about whether or not this wait type was associated with mirroring contention issues as Paul described or whether this really just represented a background process that naturally accumulated time (idle\/spin waits). The DBA said this was an idle wait type that can be ignored. I said that it was indeed associated with activity and coupled with other statistics, may point to mirroring related contention.<\/p>\n As with anything undocumented, while you cannot point to official documentation, there is nothing to stop you from setting up a test scenario and evaluating what happens under specific conditions. The \u201cshow, don\u2019t just tell\u201d method is always something I prefer, even when I\u2019m confident that a stated fact is correct.<\/p>\n Question 1: Does DBMIRROR_DBM_MUTEX accumulate during inactive periods?<\/strong><\/p>\n I set up synchronous mirroring with automatic failover for this test (Credit database) and executing the following simple before\/after WAITFOR capture of overall accumulated statistics to see which database mirroring related wait stats incremented during inactive (user inactive) periods. SQL Server version was 10.50.2500. The script runs in SQLCMD mode against CAESAR (principal) and AUGUSTUS (mirror)):<\/p>\n — Principal database instance<\/span><\/span><\/span><\/p>\n :<\/span><\/span><\/span>CONNECT<\/span><\/span><\/span>CAESAR<\/span><\/span><\/span><\/span><\/p>\n SELECT<\/span><\/span><\/span> wait_type<\/span><\/span>,<\/span><\/span> wait_time_ms<\/span><\/span>,<\/span><\/span> <\/span>signal_wait_time_ms<\/span><\/span><\/span><\/span><\/p>\n INTO<\/span><\/span><\/span> tempdb<\/span><\/span>.<\/span><\/span>dbo<\/span><\/span>.<\/span><\/span><\/span>before_waits<\/span><\/span><\/span><\/span><\/p>\n FROM<\/span><\/span><\/span> sys<\/span><\/span>.<\/span><\/span><\/span>dm_os_wait_stats<\/span><\/span><\/span><\/span><\/p>\n WHERE<\/span><\/span><\/span> wait_type<\/span><\/span> LIKE<\/span><\/span> ‘DBM%’<\/span><\/span><\/span>;<\/span><\/span><\/span><\/span><\/p>\n GO<\/span><\/span><\/span><\/p>\n \n — Mirror database instance<\/span><\/span><\/span><\/p>\n :<\/span><\/span><\/span>CONNECT<\/span><\/span><\/span>AUGUSTUS<\/span><\/span><\/span><\/span><\/p>\n SELECT<\/span><\/span><\/span> wait_type<\/span><\/span>,<\/span><\/span> wait_time_ms<\/span><\/span>,<\/span><\/span> <\/span>signal_wait_time_ms<\/span><\/span><\/span><\/span><\/p>\n INTO<\/span><\/span><\/span> tempdb<\/span><\/span>.<\/span><\/span>dbo<\/span><\/span>.<\/span><\/span><\/span>before_waits<\/span><\/span><\/span><\/span><\/p>\n FROM<\/span><\/span><\/span> sys<\/span><\/span>.<\/span><\/span><\/span>dm_os_wait_stats<\/span><\/span><\/span><\/span><\/p>\n WHERE<\/span><\/span><\/span> wait_type<\/span><\/span> LIKE<\/span><\/span> ‘DBM%’<\/span><\/span><\/span>;<\/span><\/span><\/span><\/span><\/p>\n GO<\/span><\/span><\/span><\/p>\n \n :<\/span><\/span><\/span>CONNECT<\/span><\/span><\/span>CAESAR<\/span><\/span><\/span><\/span><\/p>\n USE<\/span><\/span><\/span> Credit<\/span><\/span><\/span>;<\/span><\/span><\/span><\/span><\/p>\n \n WAITFOR<\/span><\/span><\/span> DELAY<\/span><\/span> <\/span>’00:00:30′<\/span><\/span><\/span><\/span><\/p>\n GO<\/span><\/span><\/span><\/p>\n \n — Principal<\/span><\/span><\/span><\/p>\n :<\/span><\/span><\/span>CONNECT<\/span><\/span><\/span>CAESAR<\/span><\/span><\/span><\/span><\/p>\n SELECT<\/span><\/span><\/span> wait_type<\/span><\/span>,<\/span><\/span> wait_time_ms<\/span><\/span>,<\/span><\/span> <\/span>signal_wait_time_ms<\/span><\/span><\/span><\/span><\/p>\n INTO<\/span><\/span><\/span> tempdb<\/span><\/span>.<\/span><\/span>dbo<\/span><\/span>.<\/span><\/span><\/span>after_waits<\/span><\/span><\/span><\/span><\/p>\n