-
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
-
"Der Kollege kam jetzt auf die Idee: Dann mach doch für jedes Einspielprogramm eine eigene Logische, dann geht das schneller und keiner muss auf den anderen warten und es staut sich weniger."
Wie kommt der auf so eine Idee?
Dies ist so auf der IBM i nicht möglich. Es können gleichzweitig 1000de Jobs in eine Tabelle/PF schreiben ohne dass irgend ein Job warten muss.
Wenn der Kollege den Microsoft SQL-Server meint, dann kommt es bei sog. Snapshot-Transactions zu Tablelocks, die tatsächlich jeden anderen Zugriff blockieren, bis die Transaktion abgeschlossen ist (LOck-Escalation)
Welchen Vorteile soll das also bringen, zumal alle Views diesen Zwecks auf dieselbe Tabelle/PF verweisen.
Daher wiederhole ich obige Frage:
Welches Problem habt ihr tatsächlich und wie drückt sich dieses aus?
Similar Threads
-
By Jenne in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 19-12-19, 17:49
-
By fdh in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 26-11-19, 13:53
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 19-07-16, 11:44
-
By Isabella Pridat-Zapp in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 10-09-15, 12:50
-
By cimbala in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 20-05-08, 15:31
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks