2009-04-14 3 views
2

J'ai une application .NET qui fusionne deux datatables avec beaucoup de lignes (plus de 10 000). Il y a de bonnes chances d'avoir un grand nombre de mises à jour/insertions à exécuter dans la table SQL lors de l'utilisation de la commande DataAdapter.Update.Ce qu'il faut rechercher lors de la configuration de UpdateBatchSize

À l'heure actuelle, la propriété Adapter UpdateBatchSize est définie sur 200. VS met en garde contre la définition de cette valeur trop élevée, car elle peut diminuer les performances. Ok, gotcha.

Performance, que dois-je rechercher lors de la définition de cette propriété? Quoi qu'il en soit, mettre à jour beaucoup de lignes prendra beaucoup de temps. L'exécuter sur ma machine (ou sur le serveur de base de données) ne prend pas tellement de temps, mais je suis sûr que lorsque le système est chargé d'autres éléments, cela peut être un problème.

Y a-t-il quelque chose que je peux rechercher dans le profileur? Faire un profilage standard, la durée est généralement 0. Parfois est hits 1 ou 2 (peut-être 20 fois globalement) et sur environ 20 000 mises à jour, 3-4 hit 20. CPU est à 0 sauf pour le couple qui a frappé 1-2 . Il y a 2 enregistrements qui vont jusqu'à 10. Les lectures sont toujours 2 et les écritures sont toujours 0.

Répondre

2

Premièrement, je voudrais que ce paramètre soit configurable pour que vous puissiez tester différentes valeurs sans les compiler. La prochaine chose est de regarder la durée de votre lot entier. Si votre heureux avec la performance ne le change pas. Si vous n'êtes pas satisfait de la performance, essayez d'augmenter ou de diminuer le paramètre pour voir comment il se comporte.

+0

Merci, ça me semble une bonne idée. – hacker

+0

bienvenue bonne chance – JoshBerke

Questions connexes