Indexed views
can be created in SQL Server 2000 Standard Edition. However, as Graham noted, not on views with base tables from different databases or servers.
When creating a view that links local and remote tables, you must expect some performance problems. You might want to try using OpenQuery. OpenQuery causes the query to execute on the remote server. It will be most effective if you can filter rows on the remote server and only return necessary columns rather than using * to return all columns.
Select a.col1, a.col2, b.col3, b.col4
From LocalDB.dbo.LocalTable a
Join openquery(RemoteServer,'Select col1, col2, col3, col4, ..., colN From RemoteDB.dbo.RemoteTbl Where <criteria>') b
On a.col1=b.col1
Another feature of SQL Server is the ability to specify JOIN hints. The REMOTE hint "Specifies that the join operation is performed on the site of the right table. This is useful when the left table is a local table and the right table is a remote table.
REMOTE should be used only when the left table has fewer rows than the right table." (See SQL BOL)
Select a.col1, a.col2, b.col3, b.col4
From LocalDB.dbo.LocalTable a
Inner Remote Join RemoteServer.RemoteDB.dbo.RemoteTbl b
On a.col1=b.col1
Terry L. Broadbent - DBA
SQL Server Page:
If you want to get the best answer for your question read faq183-874.