I have created a view on a local server, that gets it’s data from a linked server. On the linked I only have Read rights.
I am trying to improve the performance of my view, I tried to create the view WITH SCHEMABINDING, but are not allowed to use SCHEMABINDING on remote access. I tried reading up on Materialized Views, Yes I know it is a function in Oracle, but wanted to know if there is something similar in SQL server 2008 r2.
Any Ideas on how to increase the performance of my query?
CREATE VIEW [dbo].[vw_CustomerServiceLevel]
AS
SELECT *
FROM [10.205.0.70].Freightware.dbo.CustomerServiceLevelReportEOF RF
INNER JOIN [10.205.0.70].Freightware.dbo.CustomerServiceLevelReportDetail RD
ON (RD.HeaderGUID=RF.HeaderGUID)
INNER JOIN [10.205.0.70].Freightware.dbo.CustomerServiceLevelReportHeader RH
ON (RH.HeaderGUID=RD.HeaderGUID)
LEFT JOIN SDBPHASE2DW.dbo.DimDate dd
ON CONVERT(VARCHAR(10), RH.StartDate, 103) = CONVERT(VARCHAR(10), dd.FullDate, 103)
LEFT JOIN SDBPHASE2DW.dbo.DimDate dd2
ON CONVERT(VARCHAR(10), RH.EndDate, 103) = CONVERT(VARCHAR(10), dd2.FullDate, 103)

There are few things that you can do in order to optimize your code:
need.
that they are the same, so you can remove the convert statements.
instead a view – it will be the same as your view, except you are
able to pass to it some parameters that will cut the returned data.