• 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.