Salve a tutti,
concordo pienamente con @Migliorabile....
tanto piu' che il "vostro" progetto prevede comunque una riscrittura (con accesso ai dati via api dirette e molto sporche) che dovra' comunque essere successivamente nuovamente riscritta per utilizzare effettivamente un accesso SQL tradizionale, quindi va riscritto tutto l'accesso ai dati almeno 2 volte, con tutte le problematiche di conflitto inter-versione che tutto cio' puo' causare...
non so se quanto segue possa avere senso, ma ad esempio SQL Server (lo so, stavate parlando di Postgres) puo' connettersi a DB2 tramite linked server e cio' consentirebbe di progettare la nuova soluzione interrogando DB2 da SQL Server, quindi si potrebbe direttamente gestire l'interfacciamento applicativo in questo senso, e quanto "il tutto" fosse finalmente migrato a SQL Server, si potrebbe buttare giu' DB2... le prestazioni sarebbero penalizzate inizialmente per il carico di query distribuite su server diversi, ma potrebbe pagare, alla fine della fiera... questo pero' sarebbe l'opposto di quanto stai predisponendo...
cio' non toglie che, come anche @Migliorabile riporta, non si avrebbe piu' un accesso ai dati indirizzato a "record", ma a "set di dati" opportunamente gia' filtrati in sede di proiezione... penso tu (@MaPa) possa riconoscere che, malgrado soluzione temporanea, sia MOLTO inefficiente effettuare una SELECT * FROM myMillonRowsTable per farne il data-pump dal mid-layer come anche io avevo indicato e, finalmente, nel codice applicativo fare una
for ( long row = 0; row < MillionRowCount; row ++) {
if (outSet[row].ColonnaX == yourParam1
&& outSet[row].ColonnaY == yourParam2
&& .... ) {
do_somethng....
break;
}
}
non possa avere prestazioni esaltanti... capisco le problematiche sia operative immediate che la complessita'/costo/tempo che una riscrittura ex-novo in maniera "corretta" possano comportare, ma non so effettivamente quanto una riscrittura in almeno 2 fasi possa effettivamente pagare...
sono perplesso
saluti omnia
--
Andrea