Bonjour,

J’ai fait une application de test de performance de Linq To SQL afin de comparer sa rapidité avec une Dal « maison ».
Lors des résultats je constate une nette différence les deux. Tellement grande que je me demande si il n’y a pas quelque chose qui m’a échapper.

Voici le code pour évaluer la rapidité d’une suppression massive de 10000 entrées.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Stopwatch _time = new Stopwatch();     
 
DemoDataContext _dataContext = new DemoDataContext();
 
// Une requete pour prendre tout ce qui ce trouve dans la base.
// mais dans une vrai application on trouvera une condition en plus bien sur.
var requete = from eleve in _dataContext.eleves
                   select eleve;
 
_time.Start();
 
_dataContext.eleves.DeleteAllOnSubmit(requete);
_dataContext.SubmitChanges();
 
_time.Stop();
 
Console.WriteLine("Temps pour supprimer en millisecondes:");
Console.WriteLine(_time.ElapsedMilliseconds);
Console.ReadLine();
En résultat j’obtiens 8000 ms pour linq alors que la Dal « Maison » ne prend que 1500 ms.
Les mêmes rapports se retrouvent lorsque j’effectue une création de 10000 entrées ou une mise à jour de 10000 entrées.

Y-a-t’il une autre manière de faire qui permettrai d’avoir de meilleurs résultat ?