-
@Rolf:
Handelt es sich um ein Query/400 - Query oder um ein SQL-Select-Statement?
Erfolgt die Verknüpfung der beiden Dateien über die Schlüssel-Felder?
Werden Felder aus der zweiten Datei ausgewählt?
Werden Sätze über Feld-Inhalte in der zweiten Datei ausgewählt?
Wird für die zweite Datei überhaupt ein Zugriffs-Pfad verwendet oder die physische Datei verarbeitet?
Was passiert, wenn die beiden Dateien vertauscht werden? (sofern die Dateien mit gleich verknüpft wurden)
Dies u.v.m. sind Fragen, die der Query-Optimizer intern stellt und bei der Wahl des Optimalen Zugriffs-Weges berücksichtigt.
Sehr oft kann man den Query-Optimizer durch das Umschreiben der SQL-Statements zu anderen Entscheidungen bringen. Manchmal hilft auch eine Sortierung anzugeben. (Obwohl die Empfehlung der IBM lautet, nur dann eine Sortierung zu verwenden, wenn erforderlich!)
Einige gute Quellen zum Thema Query Optimizer findest Du unter folgenden Links:
Indexing and statistics strategies for DB2 UDB for iSeries
oder
Query performance and query optimization
 Zitat von Fuerchau
Ab V5R3 gibt es 2 verschiedene Optimizer, den alten und halt einen neuen.
Die SQL Query Engine (SQE) gibt es bereits seit Release V5R2M0 und unterstützt nur echte SQL-Interfaces. Query/400, OPNQRYF und QQQQUERY sind keine SQL-Interfaces und werden nur von der Classic Query Engine (CQE) verarbeitet. Es ist auch nicht geplant, dass diese Interfaces je mit der SQE verarbeitet werden.
Ob CQE oder SQE ziehen entscheidet der Query-Dispatcher.
Welche der beiden Query-Engines für eine SQL-Abfrage verwendet wurde, kann man nur mit Hilfe von Database Monitoren (STRDBMON oder iSeries Navigator --> Detaillierte Leistungs-Überwachung starten) feststellen. Wird Visual Explain verwendet, kann man aufgrund der unterschiedlichen Symbole sehen, ob CQE oder SQE verwendet wurden.
In den meisten Fällen wird man feststellen, dass trotz des Vorhandenseins der neuen SQE die Abfragen mit der CQE ausgeführt wurden.
Wenn der Neue eben daneben liegt dann gibt es kurzfristig einen kleinen Trick, dass der alte Optimizer verwendet wird:
Man lege irgend eine LF mit Select/Omit an. Der neue Optimizer kann diese noch nicht verarbeiten, also wird der alte genommen.
Die Zugriffe werden dann auch ggf. anders durchgeführt.
Liegt eine logische Datei mit SELECT/OMIT-Anweisungen auf einer physichen Datei, wird ein SQL-Statement auf diese Datei immer mit der CQE ausgeführt. Wenn es nur darum geht, zu prüfen, wie sich ein einzelnes SQL-Statement unter CQE oder SQE verhält, reicht es eine logische Datei im SELECT-Statement zu verwenden. Dann wird das SQL-Statement mit Sicherheit vom Dispatcher an die CQE reroutet.
Birgitta
Similar Threads
-
By jogisarge in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 15-05-06, 13:47
-
By Stefan12 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 12-05-05, 14:57
-
By dd3tj in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 20-01-05, 14:55
-
By THK in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 15-12-04, 07:40
-
By Andreas Huyer in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-01-02, 07:15
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