Zunächst einmal, was ist eine View?
Eine View ist nichts anderes als ein gesichertes SQL (SELECT) Statement. In einer View kann alles hinterlegt werden, was in einem SELECT-Statement zulässig ist, mit Ausnahme des ORDER BY.
Eine View ist immer ungeschlüsselt (deshalb ist auch der ORDER BY nicht zulässig).
Mit Hilfe von Views kann die Komplexität vom Programmen reduziert werden, da der komplexe SQL Code in einer View versteckt ist und auch in mehereren Programmen verwendet wird.
Bei der Ausführung/Verwendung einer View wird das gesicherte SELECT-Statement vom Optimizer aufgelöst (also an die Stelle gesetzt, an der die View aufgerufen wurde) und dann erfolgt die eigentliche Optimierung.
Das schöne bei SQL ist, die Sätze werden gefunden. Ohne die geeigneten Zugriffswege (Indices, geschlüsselte logische Dateien) wird erfolgt ein Table Scan (alles Sätze in der Tabelle/physichen Datei werden gelesen) oder wenn es keine andere Möglichkeit gibt, wird ein MTI (maintained Temporary Index) erstellt. Beides ist zeitaufwändig.
Views können überall verwendet werden, wo Tabellen oder Physische Dateien verwendet werden. Auch mit Native I/O. Da Views immer ungeschlüsselt sind und der Optimizer entscheidet, macht die Verwendung von Views mit Native I/O nur dann Sinn, wenn die Daten in keiner bestimmten Reihenfolge verarbeitet werden müssen.
Da SQL unheimlich mächtig ist, sind View ein gutes Mittel um Komplexität zu verstecken und um den Source Code (der ggf. in mehreren Programmen, die ggf. auch in unterschiedlichen Programmiersprachen geschrieben sind) zu minimieren und die Logik an einer Stelle (in der View) zu zentralisieren, was wiederum die Wartung vereinfacht.
Views sind jedoch kein Mittel um die Verarbeitungsgeschwindigkeit zu beeinflussen. Dazu sind entsprechende Zugriffswege erforderlich.
Es ist natürlich auch möglich in eine View zu schreiben (wie in eine logische Datei - mit native I/O und SQL), solange, die View nur auf eine Tabelle zugreift und keine Joins oder Group Bys o.ä. enthält, die eine View nicht mehr "updatable" macht.

Du kannst natürlich auch eine View in einem INSERT Statement verwenden also z.B.:
INSERT into View2 as (SELECT ... from VIEW1)
... aber Du kannst keine View um ein INSERT-Statement bauen. Eine View basiert immer auf einem SELECT-Statement.

Birgitta