-
Zugriffs-Plan: Plan-Cache vs. Programm Speicher
Hallo Gemeinde,
Ich habe gerade ein Verständnisproblem und hoffe jemand kann mir bei der Aufklärung helfen.
Wenn ich ein SQLRPGLE Programm mit statischen SQL verwende, wird der Zugriffsplan nicht im Plan-Cache gespeichert sondern im Programm-Objekt selbst (program associated space ... PAS).
Im ACS Performance Center, kann ich mir unter "Plan Cache" alle Statements (vom Plan Cache hätte ich gemeint) anzeigen lassen.
Hier habe ich aber auch Statements von SQLRPGLE Programmen mit statischem SQL.
Warum sehe ich diese hier?
Oder sind sind das nur "historische" Pläne die für den Optimizer keine Bedeutung haben?
Danke!
lg Andreas
-
Die Zugriffspläne von ALLEN von der SQE ausgeführten SQL-Abfragen werden in dem SQE Plan Cache gespeichert. Dabei spielt es keine Rolle, ob die Zugriffs-Pläne von einem statischen SQL-Statement in einem (RPG) Program oder einer SQL Routine (Stored Procedure oder User Defined Function) oder von einem dynamischen SQL generiert wurden.
Jedes SQL-Statement benötigt einen Access Plan der genau beschreibt, welche Schritte für dieses Statement erforderlich sind (Zugriffswege, Reihenfolge, Temporäre Objecte). Dieser Zugriffs-Plan dann ausgeführt (ODP= Open Data Path wird geöffnet).
Wird ein SQL-Statement ausgeführt, wird zunächst in den SQE Plan Cache geschaut, ob es da einen passenden Access Plan gibt. Dieser wird dann nochmal gecheckt (und ggf. ersetzt) bevor er dann ausgeführt wird.
Pro SQL-Statement können bis zu 3 unterschiedlichen Plänen gespeichert werden.
Die Access Pläne für Statisches SQL werden zusätzlich im (Service-)Programm-Objekt gespeichert (und auch aktualisiert). Wenn im Plan Cache kein entsprechender Plan gefunden wird, kann auf die in den Programm-Objekten gesicherten Pläne zurückgegriffen werden. Die in den Objekten (bzw. bei der Erstellung) gesicherten Zugriffs-Pläne können auch separat (SQL Package) gespeichert und verwendet werden. Vor SQE (ab ca. Release V5R2) war das die einzige Möglichkeit Zugriffs-Pläne zu speichern und verwenden.
Heute wird immer zunächst in den Plan Cache geschaut und nur dann wenn dort nicht gefunden, werden die Alternativen genutzt.
Wenn der SQE-Plan Cache vollläuft, werden die ältesten bzw. am längsten nicht verwendeten Access Pläne gelöscht. Ist der SQE Plan Cache zu klein gewählt, kann es natürlich vorkommen, dass auch relativ aktuelle Access Pläne aus dem Plan Cache verschwinden und eben NICHT mehr im ACS angezeigt werden.
Langer Rede kurzer Sinn: Plan Cache ist immer aktuell
-
Danke Birgitta für die Aufklärung.
In einigen IBM Dokumenten war nämlich die Rede davon, dass die Zugriffspläne im Programm gespeichert werden und gar kein Hinweis auf den Plan Cache.
Da war ich jetzt verwirrt, denn das Internet lügt nie! :-D
Ist also eine art Altlast die hier zu trage kommt.
Danke dir!
-
Zitat von Andreas_Prouza
In einigen IBM Dokumenten war nämlich die Rede davon, dass die Zugriffspläne im Programm gespeichert werden und gar kein Hinweis auf den Plan Cache.
Das stimmt ja auch ... SQE gibt es ja auch erst seit V5R2M0 (grin)
aber ab und zu aktualisiert die IBM auch nicht alle Dokumente!
-
Das waren sogar Dokumente die 2018 und 2022 zuletzt aktualisiert wurden.
Deshalb auch verwirrend. Dementsprechend auch nochmal Danke für die Aufklärung.
Ich bin erst mit 5.2 in die IBM i Welt hinzugekommen ... Für mich unfassbar wie man davor arbeiten konnte :-D
-
Zitat von Andreas_Prouza
denn das Internet lügt nie! :-D
DAS nenne ich mal gnadenloser Optimismus ;-)
-
Zitat von Andreas_Prouza
... Für mich unfassbar wie man davor arbeiten konnte :-D
Aber Andreas....
früher war alles besser
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Ich habe sogar noch ohne Internet programmieren gelernt.
Auch die AS/400 mit V2R1 ab 1992. Da hatten wir Datex/P-Netze.
Es ging, man musste nur wollen;-).
-
Ohne Internet?!?! Und dass nannte man Leben!?! :-D
-
Stimmt!
Damals hatte man noch mit physischen Menschen zu tun.
Man ging raus und traf sich außerhalb der eigenen Wohnung.
Das Telefon hing noch fest an einer Schnur und der Klingelton war bereits eingebaut.
Und dazu: Man hat nur halb so viel Energie verbraucht wie heute.
-
Zitat von Andreas_Prouza
Ohne Internet?!?! Und dass nannte man Leben!?! :-D
Damals gab es noch das Konzept "draussen".
Fällt heute unter Feldforschung.
-
Zitat von Fuerchau
...
Das Telefon hing noch fest an einer Schnur und der Klingelton war bereits eingebaut.
...
Wenn man angerufen wurde, erübrigte sich die Frage des Anrufenden "Wo bist du denn gerade?".
Man war natürlich zu Hause und dort nur wenige Meter vom Telefonanschluss entfernt. Kabelgebunden eben. Wenn man ein längeres Kabel am Telefon haben wollte (ich kannte Leute, die hatten ein 10 Meter Kabel), musste man das Extra Kabel für mehrere Mark im Monat mieten!
Similar Threads
-
By dschroeder in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 29-11-22, 12:07
-
By wilfried in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 23-02-18, 07:29
-
By Burgy Zapp in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 19-09-17, 18:18
-
By Fuerchau in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 21-03-17, 08:39
-
By Fuerchau in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 05-08-14, 21:54
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