Wie um herauszufinden, die optimale fetch-Größe für die select-Abfrage

In JDBC die Standard-fetch-Größe ist 10, aber ich denke, das ist nicht die beste-fetch-Größe, wenn ich eine million Zeilen. Ich verstehe, dass ein fetch-Größe zu niedrig ist reduziert die Leistung, sondern auch dann, wenn die fetch-Größe ist zu hoch.

Wie finde ich die optimale Größe? Und hat dies Auswirkungen auf die DB-Seite, macht es zu kauen, bis eine Menge Speicher?

Es nicht zu kauen, bis keine Speicher. Oracle verwendet producer-consumer design pattern so entstehenden Zeilen generiert werden, auf Anfrage(wenn Sie anrufen, Holen). Einstellung-fetch-Größe ist, soll zur Reduzierung der Anzahl von round-trips zwischen der Datenbank und der Anwendung. Ich bin mir nicht sicher, JDBC, aber zumindest im OCI können Sie auch die Größe des Puffer in Byte(Megabyte).
Der Standardwert ist null.
hier heißt es "standardmäßig, wenn die Oracle-JDBC eine Abfrage ausführt, erhält er das Ergebnis 10 Zeilen zu einer Zeit aus der Datenbank-cursor. "docs.oracle.com/cd/A87860_01/doc/java.817/a83724/resltse5.htm
JDBC verfügt nicht über eine Standard-fetch-Größe. Es ist bis zu den einzelnen Treibern. Und es gibt keine "optimale" fetch-Größe. Es kommt auf die Abfrage, und wie verarbeiten Sie Ihre Ergebnisse (und die Datenbank, die Sie verwenden, die Latenz der Verbindung, etc.). Es ist auch ein trade-off zwischen Zeit und Speicher.
Der Wert 0 für fetchSize bedeutet, dass der Fahrer frei zu wählen, seinen eigenen Standard (obwohl der Treiber ist frei, Sie zu ignorieren, Ihren Hinweis wenn Sie einstellen, dass es alles andere als 0).

InformationsquelleAutor KKO | 2015-06-09

Schreibe einen Kommentar