Moin,
Die Instanz ist nicht länger als eine Scriptlaufzeit am Leben.
Genau.
Selbst wenn die Verbindung in einem Pool gecached wird, das Prepared Statement wird es nicht.
Von sich aus nicht.
Man müsste also den Anwendungsfall haben, dass das Statement mehrfach im Script genutzt wird. Das ist der Fall, wenn mehrere Datensätze einfügen möchte.
Richtig! Und das heißt bezogen auf den Entwurf einer eigenen Klasse, daß eine diesbezügliche Methode mehrfach aufgerufen wird..
Sowas kommt gelegentlich vor und wird sich meistens an genau einer Stelle innerhalb einer Schleife abspielen.
.. und beliebig oft aufgerufen werden kann solange die Instanz noch am Leben ist.
Aber recht unwahrscheinlich ist, dass diese Nutzungen desselben Statements unabhängig voneinander von mehreren Stellen des Scripts aus ausgeführt werden sollen.
Das interessiert doch den Anwender nicht. Er ruft einfach nur eine Methode auf und darf das auch an an mehreren Stellen in seiner Anwendung ohne sich darum kümmern zu müssen welche Statements dafür innerhalb dieser Methode präpariert werden. Genau deswegen entwickeln wir ja eine Klasse und dokumentieren die API.
Einen solchen Speicher können wir auch als Cache bezeichnen und natürlich funktioniert ein Solcher nur solange wie auch eine Verbindung vorhanden ist.
Ich halte eine generelle Ausführung ohne konkreten Anlass eines solchen Features für unnötigen Aufwand mit kaum bis keinem Nutzen.
Die Performance steigt um mindestens den Faktor 2 (zwei). Ich hatte mal eine etwas umfangreichere Anwendung so zu optimieren, die war danach zehnmal so schnell. MfG