SQL Server 2012以前のSQL Serverでは、リンクサーバーはログインにdd_ddladminまたはdb_owner、sysadminを権限を使用したほうが、良い実行計画の遂行が行われます。
上の図のような状態で実験をしてみます。
testリンクサーバーとは、「db_datareader」権限のユーザーを使用。
test1リンクサーバーとは、「db_datareader」と「db_ddladmin」権限のユーザーを使用。
次のクエリを実行する。
select * from [TEST1].[AdventureWorks].[Sales].[SalesOrderDetail]
a INNER JOIN dbo.[SalesOrderHeaderSalesReason] b
ON a.SalesOrderID = b.SalesOrderID
where b.SalesOrderID between 75017 and 75111
select * from [TEST].[AdventureWorks].[Sales].[SalesOrderDetail]
a INNER JOIN dbo.[SalesOrderHeaderSalesReason] b
ON a.SalesOrderID = b.SalesOrderID
where b.SalesOrderID between 75017 and 75111
こんな感じで明らかに実行計画上に差異が発生します。