Originariamente inviato da natron
allora spiego meglio: questa applicazione web dispone di un motore di ricerca intellgente (una ricerca può impiegare anche 3 minuti di elaborazione)... il risultato della ricerca è un XML che viene parsato dall'applicazione e viene impostato un output specifico all'utente finale in cui, cliccando su una categoria, visulizzo poi il contenuto e via via come detto nel mio primo post...

quindi, visti i tempi di risposta del motore intelligente, io devo custodirmi tale XML in modo poi da poter visualizzare i vari nodi in base ai click dell'utente finale... considerando che l'output dei "padri" ha un certo layout, l'output dei "figli" un altro... posso applicare filtri vari etc etc...

nella cache non posso: vari utenti potrebbero effettuare diverse ricerche, distinte... ci sarebbe un eccessivo spreco di risorse...

stavo in questo momento provando a memorizzare tutto l'XML di una ricerca (198k) in una variabile di sessione... e sembra che non ci siano problemi... non pensavo una Session potesse contenere una mole così eccessiva di dati... ho il dubbio però che possa incorrere in quealche altro problema...
la dimensione della session dipende da come è configurata. Di default è inprocess ovvero tutte le sessioni vengono salvate in memoria ram quindi la dimensione della session dipende dalla ram installata nel server + il pagefile. Un altra soluzione potrebbe essere quella di salvare la session in un database sql e quindi in questo caso dipende dalla dimensione del db.

Potresti anche gestire tutto tramite file xml però devi mettere in piedi il sistema che gestisce il tutto.

un'altra cosa che si può fare. Memorizzare tutte le stringhe di ricerca. Dopo un pò di tempo fai un pò di analisi. Se vedi che le stringhe di ricerca si ripetono allora forse è il caso di salvare tutto in cache.

ps:dovresti fare dei conti anche sul numero max degli utenti che si collegano nello stesso momento