Migrazione della logica aziendale dal database al livello aziendale (tecnologia .NET)

4

Ho un progetto esistente in esecuzione nella tecnologia ASP.NET. Attualmente, l'intero calcolo della business logic sta avvenendo nel database sProcs (MS SQL Server). E a volte, l'applicazione diventa lenta quando viene utilizzata da molti utenti durante l'ora intensa della giornata.

Ora vogliamo spostare parte dell'elaborazione della logica aziendale lontano dal DB ed eseguirla nel lato del livello aziendale (C #). Sto cercando di capire come ottengo i dati dal database ed eseguo qualche calcolo su di esso e poi di nuovo salvare i dati forniti nel DB.

Posso ottenere i dati grezzi dal DB, quindi serializzarli nell'XML e quindi passare questo XML al livello BL. Nel livello BL, l'XML verrà de-serializzato negli oggetti di business strongmente tipizzati. E poi usando il Linq-to-Object, posso eseguire alcune operazioni (come Sum, Avg ecc.).

Si prega di comunicare con i vostri suggerimenti.

    
posta Karan 17.02.2017 - 17:17
fonte

1 risposta

8

Stai attento! Se ti capisco bene, quello che descrivi sarà un lotto più lento.

Le operazioni di aggregazione come Sum, Avg ecc. sono piuttosto veloci se le esegui in SQL. Saranno lenti solo se operano su set di dati molto grandi. Se si dispone di un set di dati di grandi dimensioni, sarà molto più lento trasferire l'intero set di dati a un client ed eseguire l'operazione di aggregazione lì. La serializzazione in XML e la deserializzazione di nuovo lo renderanno ancora più lento.

Probabilmente dovresti indagare attentamente sul motivo per cui stai avendo i problemi di prestazioni in primo luogo. Potresti avere alcuni problemi di blocco o forse query inefficienti.

Penso che il termine logica aziendale sia spesso esteso. Alcune forme di business logic appartengono al database e alcune forme appartengono al client. Tutta la logica aziendale che esegue l'unione, il filtraggio o l'aggregazione sui dati appartiene al database. Otterrai solo problemi di prestazioni orribili se lo trasferisci al client.

    
risposta data 17.02.2017 - 18:44
fonte

Leggi altre domande sui tag