Anuj Rathi (2/22/2013)
If your view contains data from several tables & you have to use that view in several queries, then It is always better to create views.Views does not have any data. It is only a virtual table.
One more thing, don't use any where clause in views until it is necessary.
You can create indexed views. (personally I never prefer temp tables).
As "matak" said, if you can provide execution plan, then it is very useful to identify the exact problem.
I have to say that I strongly disagree. While views are certainly a handy way of encapsulating common code, the use of a Temp Table to Divide'n'Conquer much larger queries frequently returns performance that will astound even some seasoned T-SQL programmers. If you're not using Temp Tables because you believe that Temp DB shouldn't be used by queries, guess again. SQL Server is usually going to use Temp DB for all but the most simple of queries and for large queries with many joins, it may use Temp DB much more than you would with a Temp Table.
--Jeff Moden
Change is inevitable... Change for the better is not.