179 messaggi dal 13 febbraio 2004
salve a tutti

ho realizzato un layer business per una applicazione web di magazzino.

Questo layer è suddiviso in due classi, la classe business che effettua delle chiamate ad una classe di dataaccess, che effettua le varie operazione a DB SQL 2005.

LA classe Dataaccess utilizza un Datacontext e Data.Linq.SqlClient.

Il funzionamento è impeccabile, a parte le prestazioni di alcune viste che effettuano qualche operazione in più a DB,di altre che invece effettuano semplici SELECT, ad esempio per alcune griglie che visualizzano dati da più Database (stesso Server SQL), che ci impiegano minuti interi per visualizzare i dati, a volte andando addirittura in timeout!

Cosa mi consigliate?

rifare la business con un ORM più performante? Se si quale?

grazie
Direi che non è tanto questione dell'ORM, quanto delle particolari query che esegui.

Ti faccio un esempio: se tu carichi in memory 100.000 fatture, e per ognuna di queste fai una select per recuperare dall'id i dati del cliente, è normale che stai qualche minuto.

Ma non è "colpa" dell'ORM  . Prova a guardare con Sql Profiler cosa accade sul tuo server di database.

Ciao!
m.
Cradle ha scritto:
Prova a guardare con Sql Profiler cosa accade sul tuo server di database.

Esatto; molto probabilmente potrai risolvere i problemi di lentezza riscontrati semplicemente creando qualche indice nel DB.

Matteo Casati
GURU4.net
179 messaggi dal 13 febbraio 2004
grazie per le risposte

si è vero, di sicuro alcune problematiche su SQL vanno verificate cn il Profiler, soprattutto la parte indici del database contabile (nn nostro) che non esistono proprio!

ma diciamo che, oltre all'ottimizzazione della parte dati, una business con l'entity framework rispetto ad un ORM di terze parti, possono variare le prestazioni?

La scelta di quest'ultimo è legato solo ad una questione di praticità e conoscenza ?

non so se mi sono spiegato.....

insomma se voi dovreste realizzare una business di una app Web, con + database, con dati molto corposi, ( anche milioni si righe) tralasciando il discorso ottimizzazione SQL, cosa scegliereste??? Microsoft con l'entity framework, o NHibernate, o altri anche a pagamento?

grazie
La scelta tra un ORM e l'altro non è tanto sulle prestazioni, ma verte su altri aspetti, quali, ad es., la natura OpenSource del prodotto, il supporto a LINQ (considera che nella versione 2 il provider LINQ di NH ha ancora parecchie limitazioni, non so se hanno migliorato qualcosa nella 3). Last but not least, il modello di sviluppo, la semplicità di utilizzo e la documentazione disponibile.

Ti avviso comunque che il discorso dei due database diversi è un po' un pain in the a$, NH o EF che sia

Ciao!
m.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.