Если я напрямую соединю локальную таблицу с удаленной таблицей, используя связанный сервер [LinkedServerA], фактический план выполнения не будет параллельным.
SELECT COUNT(1)
FROM LinkedServerA.DatabaseA.dbo.ProductA A
INNER JOIN DatabaseB.dbo.ProductB B ON A.ProductID = B.ProductID
OPTION (RECOMPILE, QUERYTRACEON 8649) --Force the query run in parallelism
Но если я получу данные из удаленной таблицы и вставлю данные в локальную временную таблицу #TmpProductA, план выполнения будет параллельным.
SELECT COUNT(1)
FROM #TmpProductA A
INNER JOIN DatabaseB.dbo.ProductB B ON A.ProductID = B.ProductID
OPTION (RECOMPILE, QUERYTRACEON 8649) --Force the query run in parallelism
Мой вопрос таков: почему использование связанного сервера предотвращает параллелизм запросов? Я искал в интернете, но нет никаких официальных документов, объясняющих это поведение ясно? Кстати, я использую SQL Server 2008 R2 с пакетом обновления 3 (SP3).