(Republishing, or using this info in a commercial product/website, is prohibited without permission. All other uses are permitted. If in doubt, please ask.)
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):
- Waiting for a remote data provider to respond, in this case while retrieving a remote rowset as input into a local sort
- Waiting for a remote data provider to respond, in this case while running the sp_testlinkedserver procedure
- 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):
- 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 - 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 - 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