Joshua D. Drake wrote:
Brent Wood wrote:
Ashish Karalkar wrote:
Thanks Brent for your replay,
What about the Disadvantages, Performance issues?
As far as I'm aware, performance is the only real disadvantage.
What performance are we talking about here? Executing from a view
although has *some* overhead, I don't even know that it is worth
considering in most cases.
Sorry, I didn't express that clearly...
A view as a filter on a single table, or a simple two table join is
generally quite fast enough, and has no noticeable overhead over a query.
A complex self relation plus some joins instantiated via a view can be
slow. But a query to produce the same output from the same underlying
tables will be just as slow.
In such cases, (like some data warehousing) a redesigned, denormalised
table structure can be implemented to provide the same "look" as the
view would have, but as a physical table, well indexed and much faster
than the view, without the joins being required.
My comment was meant to indicate that a complex view wihich is too slow
may be replaced by a denormalised physical table, which is faster, not
that a view is significantly slower than the same query upon the same
tables.
To paraphrase, the view/query performance is dependent on the underlying
table structures & relationships, and these are what may need to change
if a view is too slow. In many cases, such changes can make the original
view redundant.
Cheers,
Brent
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend