Здесь поздно, но разница, по сути, в том, что 4 части запроса выполняются локально, поэтому не могут использовать индексы или ключи, так как локальный сервер не знает о них.Вместо этого он по существу извлекает весь объект, затем применяет фильтр.В маленькой таблице вы вряд ли заметите разницу, но в таблице с миллионами строк вы заметите разницу.По сути, Openquery указывает удаленному серверу выполнить запрос от его имени, а затем передать результат обратно.
Общее правило, которое я бы сказал, таково;НИКОГДА не присоединяйтесь к столу, используя 4 части.Присоединяйтесь только с помощью Openquery, и я бы даже избегал этого там, где это возможно, но это скорее личное предпочтение.
Однако выполнение SP из 4 частей, т.е. EXEC ServerName.DBName.SchemaName.ObjectName, по сути, такое же, так как оно также говоритудаленный сервер для выполнения запроса от его имени.