双链接服务器上的索引视图

car*_*reo 3 sql-server clustered-index sql-server-2008-r2 view

服务器 SERVER_A 有一些数据。

服务器SERVER_B将A定义为链接服务器,并定义了一些数据视图。查询是这样的:

CREATE view myview as
select * from 
openquery ( SERVER_A, select .... )
Run Code Online (Sandbox Code Playgroud)

服务器 SERVER_C 将 B 定义为链接服务器。

我拥有对 SERVER_C 的完全访问权限,我可以要求对 SERVER_B 进行一些更改,但不能要求对 SERVER_A 进行一些更改。我的所有应用程序都将访问服务器 SERVER_C,并需要来自 SERVER_A 的数据。SERVER_B 上的视图非常复杂,它们会在返回任何内容之前导致超时。

我认为为了提高这些查询的性能,我需要将 SERVER_B 上的视图转换为“索引视图”。要为视图建立索引,我必须创建聚集索引。

问题:

1)我应该在哪里定义聚集索引?它应该在 SERVER_B 上,还是我可以以某种方式在 SERVER_C 上定义它?

2) 即使未使用该视图,在 SERVER_B 上使用索引视图是否会以任何方式影响 SERVER_A 的性能?

Aas*_*lah 5

您无法在链接服务器表上创建索引视图。

根据 BOL http://msdn.microsoft.com/en-us/library/ms191432.aspx ,“视图必须仅引用与视图位于同一数据库中的基表。”