24 messaggi dal 19 ottobre 2010
Ciao Matteo,
dopo aver visto il video ho fatto dei test :

- Core --> 576 millisecondi
- EF 6 --> 169 millisecondi
- Linq to Sql --> 52 millisecondi




Entity Core risulta essere il più lento.


DM.EF db = new DM.EF();
db.Database.Connection.Open();
Stopwatch psw = new Stopwatch();
psw.Start();
var totale = db.documenti.Where(r => r.CodTipoDocumento == 3);
Console.WriteLine("risultato : " + totale.Count());
psw.Stop();
Console.WriteLine("EF 6 ElapsedMilliseconds : " + psw.ElapsedMilliseconds);

LinqToSql.DMLDataContext DC = new LinqToSql.DMLDataContext();
Stopwatch psw1 = new Stopwatch();
psw1.Start();
var totale2 = DC.documenti.Where(r => r.CodTipoDocumento == 3);
Console.WriteLine("risultato : " + totale2.Count());
psw1.Stop();
Console.WriteLine("Linq to Sql ElapsedMilliseconds : " + psw1.ElapsedMilliseconds);

using (var DBCore = new Core.DBEntities())
{

Stopwatch psw2 = new Stopwatch();
psw2.Start();
var totale3 = DBCore.documenti.Where(r => r.CodTipoDocumento == 3);
Console.WriteLine("risultato : " + totale3.Count());
psw2.Stop();
Console.WriteLine("Core ElapsedMilliseconds : " + psw2.ElapsedMilliseconds);
}

Forse conviene utilizzare Linq to Sql ?
37 messaggi dal 16 giugno 2011
Contributi
Ciao Domenico,

non è detto che EF Core sia sempre più veloce, dipende tantissimo dalle query, dal fatto che dati siano già in cache o meno, dalla versione di EF Core, dal database che c'è agganciato e dalla sua posizione (esempio, è nel cloud?) e da tanti altri fattori.

Potrebbe tranquillamente anche essere un "problema" di modello, ad esempio una struttura dati che ad EF Core non piace, quindi per realizzare la stessa query SQL ci mette di più, potrebbe essere che prova a fare una query che non è in grado di tradurre e quindi sposta il contesto in memoria e, ancora una volta, da altri fattori.

Nel video che hai avuto modo di vedere, tutti i test sono stati effettuati sul database classico di Microsoft, ovvero AdventureWorks nella versione 2016, in cui ci sono anche tutti i vantaggi relativi alla parte in-memory e così via...

Considera inoltre che il prodotto è veramente nuovo, è la stessa Microsoft che afferma che non è ancora maturo e non è per nulla detto che sia adatto alle soluzioni con EF6 pre-esistente.
24 messaggi dal 19 ottobre 2010
Grazie mille per la risposta tempestiva.

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.