2013-06-05 12 views
5

Wenn wir ein PreparedStatement-Objekt erstellen, wird es auf der Serverseite zwischengespeichert? Wie unterscheidet es sich im Vergleich zu PreparedStatement in Oracle-Treiber? Wenn die vorbereitete Anweisung wiederverwendet wird, welche Daten werden an den Cassandra-Server gesendet, nur param-Werte?Funktionsweise von Datastax PreparedStatements

Von dem, was ich verstehe, hält ein Session-Objekt im Java-Treiber mehrere Verbindungen zu mehreren Knoten im Cluster. Wenn wir dieselbe vorbereitete Anweisung in unserer Anwendung in mehreren Threads wiederverwenden, werden wir nur eine Verbindung zu einer Cassandra verwenden? Ich denke, das Vorbereiten der Anweisung erfolgt nur für eine Verbindung ... Was passiert, wenn der Routing-Schlüssel bei jedem ausgeführten Aufruf aktualisiert wird?

Welche Vorteile haben vorbereitete Anweisungen?

Danke

Antwort

6

Ja, nur die Aussage ID und Parameter nach werden müssen, schickte die Erklärung vorbereitet.

Der Treiber verfolgt die Anweisungs-IDs für jeden Server in seinem Verbindungspool; es ist transparent für Ihre Anwendung.

Der Vorteil ist eine verbesserte Leistung, da die Anweisung für jede Abfrage nicht erneut kompiliert werden muss.

+1

Wenn die Verbindung verloren geht (oder die Sitzung irgendwie geschlossen wurde) und nach einer erneuten Verbindung ... funktionieren diese vorbereiteten Anweisungen für eine neue Sitzung? – pinkpanther

+0

Ja, sie werden jedoch neu kompiliert. – Tvaroh

Verwandte Themen