Huch.
Sorry, ich rutsche gerne in Details ab..
Also: Eine View ist eine Art 'virtuelle' Tabelle in einer Datenbank. Diese virtuelle Tabelle ist das Ergebnis einer in die Datenbank eingegebenen Abfrage. Sozusagen eine 'fest verdrahtete'
SQL-Abfrage die auf einen Tabellennamen hört.
Diese View wird erstmalig generiert wenn Du diese virtuelle Tabelle abfragt. Die Datenbank führt das Statement das hinter dieser Tabelle steht aus und merkt sich das Ergebnis sowie die Stellen wo die Daten herkommen. Diese Ergebnis wird also (im Cache) zwischengespeichert, also gecachet. Bei einer neuen Abfrage dieser View wird also das gemerkte Ergebnis ausgeliefert und es muss nicht neu berechnet werden. Das ganze ist also in der Regel schneller (performanter) als jedes mal die Abfrage selber abzuschicken.
Ändern sich nun die Daten in der Datenbank merkt diese das und verwirft (invalidiert) das Zwischenergebnis, so dass die nächste Abfrage neu berechnet und somit wieder gültig (valide) ist.
Die normale Abfrage ohne View (besser: deren Ergebnis) wird nicht so lange zwischengespeichert und demnach häufiger neu berechnet, was wieder Performance / Leistung kostet.