Zur Zeit bringt mein SQL resultSet etwa 250K Datensätze mit, die verarbeitet werden müssen. Es dauert 25 Sekunden, um den Vorgang abzuschließen. Ich plane, das Multithreading darauf zu machen. Aber die Daten konnten nicht vom ResultSet getrennt werden. Beim googlen sagt es CachedRowSet, aber kein richtiges Beispiel für die Implementierung. Bitte helfen Sie mir dabei. Danke im Voraus.Wie verarbeitet man 250K Datensätze in ResultSet in Multithreading oder anderen schnelleren Weg?
Antwort
können Sie eine Abfrage schreiben, indem mehr Tabellen verknüpft und auch versuchen, diese zwei Schlüsselwörter verwenden
FETCH and OFFSET.
For 1st Ex : fetch = 1, offset = 1000
For 2nd Ex : fetch = 1001, offset = 1000
Bitte überprüfen Sie diesen Link https://technet.microsoft.com/en-us/library/gg699618(v=sql.110).aspx
durch den Satz zu holen, nachdem gesetzt von Datenbank Sie können Verwenden Sie Paginierungskonzept Es wird die Benutzeroberfläche in keinem Fall beeinflussen.
Im Falle von Oracle: Sie können es einfach auf 12c tun, indem Sie OFFSET angeben.
In 12c,
SELECT val FROM table ORDER BY val OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;
das gleiche auf 11g und vor zu tun, müssen Sie jeweils ROWNUM zweimal, innere Abfrage undäußere Abfrage verwenden.
Die gleiche Abfrage in 11g,
SELECT val FROM (SELECT val, rownum AS rnum FROM (SELECT val FROM table ORDER BY val) WHERE rownum <= 8) WHERE rnum > 4;
Hier OFFSET 4.
Woher wissen Sie, dass das OP SQL Server verwendet? –
@Michael Frage karthikeyan govundaraj die Datenbank angeben .. –
Es ist die Oracle-Datenbank. – opensourcegeek
- 1. Wie verarbeitet man "parallele" Sequenzen in Linq?
- 2. Wie verarbeitet man KML/GeoJSON in Nodejs?
- 3. Wie verarbeitet man große Binärdaten in Clojure?
- 4. Wie gruppiert man Datenprotokollierung in Multithreading?
- 5. Wie verarbeitet man die Vektoreingabe in StateFlow?
- 6. Multiprocessing/Multithreading in Python ..?
- 7. Wie garantiert man in Multithreading mit Ausnahmen schreiben in Datei?
- 8. Wie verarbeitet man ein Objektliteral?
- 9. Multiprocessing oder Multithreading?
- 10. Wie man resultset vom Web Service in Java zurückgibt
- 11. Wie verarbeitet man JSON Fehlermeldung
- 12. Wie erstellt man eine komplexe Abfrage mit Resultset aus einer anderen Abfrage in Mongodb?
- 13. Wie verarbeitet man Signale in einer Qt-Unterklasse?
- 14. Wie verarbeitet man Daten in mehreren Threads mit EJB3?
- 15. Präemptives Multithreading in Delphi
- 16. WinForm Multithreading. Verwenden Sie backgroundWorker oder nicht?
- 17. Wie verarbeitet man Std-Container mit Threads?
- 18. Wie verarbeitet man zwei Formulare in einer Ansicht?
- 19. Wie Multithreading, Parallelität oder Parallelität in iOS Swift tun?
- 20. Wie verarbeitet man ein Django-Queryset?
- 21. get ResultSet in JTxtField
- 22. Wie man Datensätze manipuliert?
- 23. ResultSet in Pagination
- 24. Multithreading-Probleme
- 25. Wie verarbeitet man einige HTTP-Sitzungen?
- 26. Delphi TList in Multithreading
- 27. Wie alle Datensätze für eine Tabelle zu zerstören, einschließlich: abhängige Datensätze in anderen Tabellen
- 28. Wie man MySQL-Verbindung (en) mit Python Multithreading behandelt
- 29. Multithreading Best Practices in Java
- 30. Multithreading in LLVM
Haben Sie für alle 250K Datensätze warten müssen, bevor er zum nächsten Teil Ihrer Anwendung zu verschieben? Wenn nicht, können Sie den ResultSet-Code in einem anderen Thread ausführen und ein Producer/Consumer-Muster verwenden. –
@karthikeyan Govindaraj Versuchen Sie, die Daten nach festgelegten Maßstäben aufzunehmen. Nimm Daten 1000 nach 1000 (Paginierung). Dann wird es schnell und gibt eine bessere Leistung. –
@KarthikeyanSubramaniam kann ich nicht tun. weil ich von der Verbindung von Tabellen nehme. Also, wenn ich set by set setze, könnte es Chancen geben, den gleichen Rekord wieder zu bekommen, oder? – opensourcegeek