2011-06-29 3 views
0

Je porte le code VB.Net 2 (VS 2005) à VB.Net 4 (VS 2010). Jusqu'à présent, les choses se sont déroulées relativement bien. Cependant, en testant mon nouveau code porté, je suis tombé sur un comportement étrange.SqlClient.SqlDataAdapter.Update() effectue très lentement

Dans VS 2005 (.Net 2), j'ai un DataTable rempli de données. J'utilise ensuite un DataAdapter pour renvoyer des mises à jour au SQL Server. Lorsque j'exécute la commande SqlClient.SqlDataAdapter.Update(), elle s'exécute en environ 4 secondes. Le même code, sur la même table dans VS 2010 (.Net 4) s'exécute en 1 minute 17 secondes. Ceci est complètement inacceptable. Cependant, je n'ai aucune idée de pourquoi il se passe. La méthode .Update() est une commande interne, pas une que j'ai modifiée de quelque façon que ce soit. Ça ne fait pas erreur, c'est juste douloureusement lent.

Vous avez des idées?

+0

Y at-il quelqu'un là-bas qui a entendu ou connu ce problème? Personne n'a remarqué une dégradation des performances en utilisant SQLClient.SQLDataAdapter de .Net 4? – TekkGuy

+0

Pas vu quelque chose comme ça, allumer le profiler pour l'ancien et le nouveau et comparer la même opération, pourrait vous donner quelques indices –

Répondre

2

Après plusieurs mois de travail direct avec Microsoft ... une solution/réponse a été trouvée. Je ne me sens pas si mal parce qu'il a fallu six programmeurs Microsoft différents et près de six mois pour découvrir la réponse. Apparemment, l'IDE de Visual Studio 2010 se comporte de manière très différente de son homologue de Visual Studio 2005. Lors de l'exécution d'une application dans l'EDI, le hook du VS2010 dans l'exécutable en cours d'exécution entrave considérablement les performances des applications. Il existe une option cachée (introuvable dans la structure du menu) pour exécuter l'application sans le débogueur attaché. La touche de raccourci est CTRL + F5. Lorsque l'application est exécutée dans ce mode, notre problème de performance a disparu. C'est une réponse tellement bête et simple ... mais les deux choses qui me font me sentir mieux, c'est que VS2005 n'a pas eu ce problème, les options "run w/o debugger" ne sont pas listées dans le menu du tout, et ça a pris six programmeurs Microsoft pour déterminer cela était le problème.

Donc pour quelqu'un d'autre qui semble avoir le même problème ... essayez CTRL + F5. :-)

Questions connexes