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

MSQL_DQ

(Back to main page…)

Description:

This wait type is exactly as described by the Books Online entry (although the second sentence should say ‘This is *also* used to detect…’).

(Books Online description: “Occurs when a task is waiting for a distributed query operation to finish. This is used to detect potential Multiple Active Result Set (MARS) application deadlocks. The wait ends when the distributed query call finishes.”)

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:

Pre-2005/2005

Removed in SQL Server version:

N/A

Extended Events wait_type value:

The map_key value in sys.dm_xe_map_values is 201 in 2008 and 2008 R2, 208 in 2012, and 215 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:

If this wait type becomes prevalent on your server, identify the queries causing it, and do performance analysis on the portions of the query that run on the remote SQL Server or other OLE DB data provider. For more information, see the Books Online topic Optimizing Distributed Queries.

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

  1. Waiting for a remote data provider to respond, in this case while retrieving a remote rowset as input into a local sort
  2. Waiting for a remote data provider to respond, in this case while running the sp_testlinkedserver procedure
  3. Waiting for a remote data provider to respond, in this case while retrieving remote statistics while compiling a query plan

And other similar call stacks.

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

  1. SOS_Task::PopWait+bc
    COledbConnect::GetSession+715
    COledbRangeSchema::GetRowset+cb
    COledbRangeSchema::GetRowset+2e4
    CQScanRmtScanNew::OpenConnection+1c4
    CQScanRmtBaseNew::OpenHelper+76
    CQScanSortNew::BuildSortTable+56
    CQScanSortNew::OpenHelper+cc
    CQScanSortNew::Open+10
    CQueryScan::StartupQuery+1e0
    CXStmtQuery::SetupQueryScanAndExpression+19f
    CXStmtQuery::InitForExecute+1f
    CXStmtQuery::ErsqExecuteQuery+2fb
    CXStmtSelect::XretExecute+28a
    CMsqlExecContext::ExecuteStmts<1,1>+352
    CMsqlExecContext::FExecute+878
    CSQLSource::Execute+7d3
  2. SOS_Task::PopWait+bc
    COledbConnect::GetSession+715
    SpTestLinkedServer+241
    CSpecProc::ExecuteSpecial+25b
    CXProc::Execute+14e
    CSQLSource::Execute+90e
    CStmtExecProc::XretLocalExec+1e4
    CStmtExecProc::XretExecExecute+527
    CXStmtExecProc::XretExecute+27
    CMsqlExecContext::ExecuteStmts<1,1>+352
    CMsqlExecContext::FExecute+878
    CSQLSource::Execute+7d3
    process_request+3fa
    process_commands+38c
    SOS_Task::Param::Execute+292
    SOS_Scheduler::RunTask+a2
  3. SOS_Task::PopWait+bc
    COledbConnect::GetSession+715
    COledbRangeRowset::GatherStats+d8
    CRelOp_Query::LoadRemoteStats+28e
    CRelOp_Query::FAlgebrizeQuery+521
    CProchdr::FNormQuery+3d
    CProchdr::FNormalizeStep+3ce
    CSQLSource::FCompile+c85
    CSQLSource::FCompWrapper+9e
    CSQLSource::Transform+49c
    CSQLSource::Execute+3cf
    process_request+3fa
    process_commands+38c
    SOS_Task::Param::Execute+292
    SOS_Scheduler::RunTask+a2