On which server does a query execute? Given two Microsoft SQL servers:

Say ServerA has a view titled "View1":
SELECT * FROM ServerB.database.dbo.Table1 WHERE Column1 IN (1,2,3)

and a stored procedure "sp_Foo":
SELECT * FROM View1 WHERE Column1=1

When I execute EXEC sp_Foo, which query is executed on which server? Are they all executed on ServerB? All on ServerA? Or is the view query executed on ServerB and the SP query executed on ServerA?
When sp_foo executes there is only one query:

SELECT * 
FROM (
  SELECT * 
  FROM ServerB.database.dbo.Table1 
  WHERE Column1 IN (1,2,3))
WHERE Column1=1;


This query can execute locally against a remote scan or it can execute remotely. What happens cannot be foretold, because it depends on the capabilities advertised by driver in use by the linked server. Typically a query like above over a linked server that uses SQLNCLI driver it will execute remotely. Local execution backed by a remote scan shows up on the execution plan as Remote Scan Showplan operator.

More complex plan can execute somehow mixed, partially remote partially locally, eg. see Linked Server behavior when used on JOIN clauses.