PDA

View Full Version : SQL Cache löschen



Fuerchau
29-07-14, 07:53
Ich habe da auch mal ein Problem.
Eine "Deterministic" SQL-Function wird von SQL irgendwo gecached.
Wenn ich die Funktion korrigiert oder die Datengrundlage bearbeitet habe, liefert mir SQL immer noch das selbe Ergebnis.
Eine Abmeldung und Neuanmeldung behebt das Problem nicht.
Stelle ich die Funktion auf "not Deterministic" wird diese auch wieder neu aufgerufen.
Aus Performancegründen ist das aber keine Option.

Wo kann ich diesen Cache in V6R1 löschen?
Am Besten wäre eine 5250-Lösung und nicht der iSeries-Navigator:).

Fuerchau
29-07-14, 13:07
Nun ja, ich dachte mindestens Birgitta hätte da eine Antwort für mich:).

woodstock99
30-07-14, 09:39
naja hast du bestimmt schon probiert (alter function). weiss aber nicht ob das was hilft .
mein jetziger wissenstand beruht leider auch nur auf das lesen .

Drop und create dann sollte es gehen aber das ist ja nicht sinn der Sache :(

Fuerchau
30-07-14, 11:54
Nun ja, um das zu testen habe ich ja per DROP/CREATE auf NON DETERMINISTIC gestellt, die Funktion lieferte dann die richtigen Werte.
Ein erneuter DROP/CREATE mit DETERMINISTIC zeigte dann allerdings wieder die Cache-Werte an.
Ich habe den SQL sogar von 2 verschiedenen Sitzungen ausgeführt, jeweils mit dem selben Ergebnis.
Bei DETERMINISTIC habe ich allerdings Performanceeinbußen von ca. 20%.

Pikachu
30-07-14, 12:32
Vielleicht hilft es, den Parameter CACHE_RESULTS in einer lokalen Kopie der Datei QAQQINI (http://www-304.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzajq/qryopt.htm) ab V5R3 auf *JOB zu ändern.

Fuerchau
30-07-14, 14:13
OK. Den Wert kannte ich noch nicht (es kommt ja dauernd was neues hinzu).
Aber trotzdem muss es neben dem IPL doch die Möglichkeit geben, den Cache irgendwie zu löschen.
Das System läuft nämlich im 24/7-Betrieb und kann nicht mal so eben gestartet werden.

AS400.lehrling
05-08-14, 21:54
Kann man nicht den Job der den CACHE_RESULTS enthält per cronjob regelmäßig neu starten lassen ?

Gruß AS400.lehrling