View Full Version : SQL Optimierung (Anfängerfrage)
STRSQL
und dann
CALL qsys2.dump_plan_cache('QGPL','SNAPSHOT1')
Habe ich eben probiert
Gruß
Ronald
KingofKning
12-03-15, 07:21
Ändert leider nichts,Befehl
===> CALL qsys2.dump_plan_cache('QGPL', 'SNAPSHOT1');
F3=Verlassen F5=Aktualisieren F12=Abbrechen F24=We
Zeichen ',' nach Zeichenfolge ''QGPL' ' ist ungültig.
Ich kann das ja auch über den OOpSNerv machen, aber es geht ja ums Prinzip. Jawohl.
;-)
GG
Manche Fehler sind ggf. nur Folgefehler:
CALL qsys2.dump_plan_cache('QGPL', 'SNAPSHOT1')
geht natürlich nur, wenn SQL-Naming (F13) für STRSQL eingestellt ist.
Lass auch mal das Semikolon am Ende weg.
Ansonsten musst du die QSYS2 in die LIBL aufnehmen und
CALL dump_plan_cache('QGPL', 'SNAPSHOT1')
durchführen.
Bei SYS-Naming kann man Prozeduren und Funktionen nicht qualifizieren da der "/" als Divisions-Operator interpretiert wird.
Prüf doch mal welche Namenskonventionen (System oder SQL) Du verwendest!
Der Strandard bei STRSQL ist System, beim IBM i Navigator SQL.
Unter V5R4 ist es noch so , dass für qualifizierte Objekte unterschiedliche Schreibweisen erforderlich sind, d.h. bei SQL Naming wird der Punkt als Trennzeichen verwendet, bei System Naming der Slash.
(Erst seit Release 7.1 TR7 (oder so) kann beim System Naming wahlweise der Punkt oder Slash verwendet werden).
Aber Achtung! Bei System und/oder SQL Naming hängt noch etwas mehr dran als ein ein anderes Trennzeichen, insbesondere was Berechtigungen und Verarbeitung von Bibliothekslisten angeht!
Birgitta
KingofKning
12-03-15, 08:54
Hallo,
===> CALL dump_plan_cache('QGPL', 'SNAPSHOT1')
F3=Verlassen F5=Aktualisieren F12=Abbrechen F24=We
Zeichen ',' nach Zeichenfolge ''QGPL' ' ist ungültig.
Beim strsql steht folgendes
Namenskonvention . . . . . . . *SYS *SYS, *SQL
Ich werde nacher mal den Oppsnerv probieren.
GG
Welches Release hast du im Einsatz?
andreaspr@aon.at
12-03-15, 11:58
Release V5R4.
GG
(und noch ein paar Zeichen um auf die 20 zu kommen)
Prüfe mal, ob die Routine überhaupt registriert ist, ggf. gibt's die ja erst ab V6R1:
SELECT * FROM sysprocs WHERE ROUTINE_NAME like '%PLAN%'
Wo genau gibst du diesen Befehl ein?
Dieser CALL ist kein CL-Befehl sondern ein SQL-Befehl.
Du mußt ihn also zum Beispiel in einer SQL-Sitzung (STRSQL) eingeben.
===> CALL qsys2.dump_plan_cache('QGPL', 'SNAPSHOT1');
F3=Verlassen F5=Aktualisieren F12=Abbrechen F24=We
Zeichen ',' nach Zeichenfolge ''QGPL' ' ist ungültig.