-
SQL - optimize for xxx rows
Hallo,
Habe versucht mein interaktives rpg programm zu tunen (dynamisches sql mit cursor) und bei declare cursor 'for read only' und 'optimize for xxx rows' hinzugefügt. das erlaubt mir bereits seu nicht, kompillieren kann ich auch nicht. woran kann das liegen? geht das nur bei statischem sql? wie kann ich sonst ein dynamisches sql tunen?
mfg roman
-
Zitat von roko
Hallo,
Habe versucht mein interaktives rpg programm zu tunen (dynamisches sql mit cursor) und bei declare cursor 'for read only' und 'optimize for xxx rows' hinzugefügt. das erlaubt mir bereits seu nicht, kompillieren kann ich auch nicht. woran kann das liegen? geht das nur bei statischem sql? wie kann ich sonst ein dynamisches sql tunen?
mfg roman
Die FOR READ ONLY und die FOR OPTIMIZE OF Klausel sind Bestandteile des SELECT- und nicht des DECLARE-Statements.
Die Angaben müssen in den Command-String mit aufgenommen werden.
PHP-Code:
D Cmd S 256
*------------------------------------------------------
/Free
Cmd = 'Select Feld1, Feld2, Feld3 From MYFILE +
For Read Only Optimize for 5 Rows';
/End-Free
*
C/EXEC SQL Prepare CmdSql From :Cmd
C/END-EXEC
C/EXEC SQL Declare Csr1 Cursor For CmdSql
C/END-EXEC
Birgitta
-
Hallo Brigitta,
Vielen Dank für Deine Antwort, ich habe schon gehofft, dass Du dich auf meine Anfrage meldest. Habe sofort umgesetzt, funktioniert auch, aber leider nicht so wie ich mir das vorgestellt habe / ich glaube, ich habe 'optimize for..' falsch verstanden. wenn ich eine geringe Anzahle Sätze auswähle ist die Performance eine Spur besser als vorher, wenn aber eine Unmenge an Datensätzen daher kommt, sind die Antwortszeiten um vielefaches grösser. ich probiere es noch mit erstellen einer join-file - oder kannst Du mir sonstige Tipps geben?
Auf jeden Fall vielen Dank.
mfg Roman
-
Zitat von roko
Hallo Brigitta,
Vielen Dank für Deine Antwort, ich habe schon gehofft, dass Du dich auf meine Anfrage meldest. Habe sofort umgesetzt, funktioniert auch, aber leider nicht so wie ich mir das vorgestellt habe / ich glaube, ich habe 'optimize for..' falsch verstanden. wenn ich eine geringe Anzahle Sätze auswähle ist die Performance eine Spur besser als vorher, wenn aber eine Unmenge an Datensätzen daher kommt, sind die Antwortszeiten um vielefaches grösser. ich probiere es noch mit erstellen einer join-file - oder kannst Du mir sonstige Tipps geben?
Auf jeden Fall vielen Dank.
mfg Roman
Hallo Roman,
1. FOR OPTIMIZE OF - kann die Zeit, die der Optimizer zum Suchen des Optimalen Zugriffs-Weges verwendet, beeinflussen.
2. Eine JOIN-FILE anzulegen und dann im SQL-Statement zu verwenden bringt überhaupt nichts! Der Query Optimizer entnimmt der Join-File nur die Join- und Select/Omit-Informationen. Anschliessend wird das Query neu geschrieben und für jede verknüpfte Datei ein eigener Zugriffs-Weg gesucht. Eine SQL-View ist in diesem Fall eine bessere Lösung.
(Aber auch hier wird für jede verknüpfte Datei ein eigener Zugriffs-Weg gesucht.)
Wir habe die Erfahrung gemacht, dass eine Join-File die langsamste Verarbeitung ist, als nächstes folgt der direkte Join im Select-Statement und die schnellste Variante ist SQL-Views zu verwenden.
3. Du musst Dein SQL analysieren, entweder über STRDBG und anschliessend das Joblog anschauen oder besser noch über den iSeries Navigator / Visual Explain.
In beiden Fällen werden fehlende Indices vorgeschlagen. Nur über entsprechende Indices können SQL-Statements getuned werden.
Birgitta
-
Hallo Roman,
wieder mal ein typisches Beispiel dafür, dass Fragen ohne verständliche Erläuterung worum es wirklich geht, völlig sinnlos sind!!! Wenn ich bei Optimize for eine sehr große Anzahl angebe, dann ist ein full Table scan das schnellste, dauert aber für den ersten Satz sehr lange.
mfg
Dieter Bender
Zitat von roko
Hallo Brigitta,
Vielen Dank für Deine Antwort, ich habe schon gehofft, dass Du dich auf meine Anfrage meldest. Habe sofort umgesetzt, funktioniert auch, aber leider nicht so wie ich mir das vorgestellt habe / ich glaube, ich habe 'optimize for..' falsch verstanden. wenn ich eine geringe Anzahle Sätze auswähle ist die Performance eine Spur besser als vorher, wenn aber eine Unmenge an Datensätzen daher kommt, sind die Antwortszeiten um vielefaches grösser. ich probiere es noch mit erstellen einer join-file - oder kannst Du mir sonstige Tipps geben?
Auf jeden Fall vielen Dank.
mfg Roman
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
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