Materialized views give you a speed advantage since the database does not have to execute the query each time it is called. The tradeoff is space and management of the MV. For example, overhead may become an issue it is set to update each time the base table(s) updates and you are running an OLTP data store. They can also serve as a cache (like HTTP caches) if you can allow clients to view stale data. This greatly reduces the amount of work your database needs to do.