Parallel LINQ in WebApps?
-
08-07-2019 - |
Domanda
Ho appena visto l'ultimo Canale 9 vid sulle prossime estensioni parallele a .NET. Come lo useresti in un'app Web? Sto specificamente pensando di utilizzare le estensioni Linq parallele contro un db SQL. Avrebbe senso utilizzare questo come un modo per accelerare il livello di accesso ai dati in un'app server multiutente? Quali sono i problemi (a parte gli ovvi problemi di sicurezza dei thread che utilizzano tipi di raccolta statici)?
Soluzione
Penso che questo paragrafo estratto da questo articolo spiega l'uso di PLINQ-to-SQL:
LINQ-to-SQL e LINQ-to-Entities le query verranno comunque eseguite dal rispettivi database e query provider, quindi PLINQ non offre a modo di parallelizzare quelle query. Se di cui si desidera elaborare i risultati quelle query in memoria, tra cui unendo l'output di molti query eterogenee, quindi PLINQ può essere abbastanza utile.
Per quanto riguarda l'utilizzo di PLINQ in un'app Web, se la richiesta richiede molti calcoli in memoria in PLINQ di streghe potrebbe essere utile (come se si dispone di più origini dati che si desidera interrogare insieme) Non vedo problemi nell'usarlo.
Altri suggerimenti
Parallel LINQ è pensato principalmente per lavorare contro raccolte in memoria, credo. Come ti aspettavi di usarlo contro il tuo database?
Dato che le webapp sono naturalmente piuttosto parallele (in termini di richieste separate eseguite su thread separati ecc.) Sospetto che PLINQ non si applicherà molto ad esso.