... Auswertungen wie diese und Subfiles gehören zu den reinen Lesezugriffen (ohne updates). Der SQL Weg hierfür ist, einfach skizziert:
- Ermittlung eines SQL Statements, das die benötigten Daten komplett liefert
- prepare enstsprechenden read only cursor (mit host variablen für einschränkende Bedingungen)
- Blockfetch (so 1000 Sätze oder mehr auf einmal in eine entsprechende dim Struktur)
- Optimierung durch anlegen von Indexen
Die Geschwindigkeit kommt hierbei primär durch die Ersetzung von mehreren Tausend Einzelzugriffen per RLA durch einen einzigen SQL Zugriff.
Vorhamdene Zugriffslogik, Daten per read und chain zusammen zu klappern, eins zu eins durch SQL zu ersetzen bringt keine Vorteile, kumuliert eher Schwächen.

Für Einmal Auswertungen hat die SQL Variante nach obigem Muster den Vorteil, dass man die Zugriffslogik vorab komplett testen kann (man sieht ja die Daten vorab). Die resultierende Laufzeit ist bei geringen Datenmengen (12 Mio Datensätze sind nicht viel! Viel fängt heute bei mehreren 100 Mio an) nebensächlich.

D*B