A non-materialized view can benefit from caching a query plan, and depending on the configuration it may support a predicate. Clicking a predicate is where the optimizer determines that the WHERE clause in the view:
SELECT v.* FROM VIEW v WHERE v.column = 5
... can be inserted into the query used to build the view:
SELECT * FROM VIEW_TABLE(S) WHERE column = 5
Otherwise, a non-materialized representation can be considered a macro - placeholder, which extends into the base query. This means that depending on usage, the view may work worse than including the main request in an external request. Layered views on top of each other are not reasonable practice because errors will not occur until runtime (queries that use views).
A materialized view (known as an indexed view in SQL Server) has at least one index on it and can be as fast as querying a regular table.
source share