Question

J'ai une application .NET qui est la fusion de deux datatables avec beaucoup de lignes (10.000+). Il y a une bonne chance d'avoir un grand nombre de mise à jour / inserts pour effectuer à la table SQL en utilisant la commande DataAdapter.Update.

En ce moment, je l'ensemble de la propriété adaptateur UpdateBatchSize à 200. VS met en garde contre la mise en valeur trop élevée car elle peut diminuer les performances. Ok, Gotcha.

Performance sage, que dois-je chercher lors de la définition de cette propriété? Peu importe ce que, beaucoup de mise à jour de lignes prendront un tas de temps. Courir sur ma machine (ou sur le serveur DB) ne -seem- pas prendre beaucoup de temps, mais je suis sûr que lorsque le système est chargé vers le bas en faisant d'autres éléments, cela peut être un problème.

Y at-il quelque chose que je peux trouver dans le Générateur de profils? Faire un profilage standard, la durée est généralement 0. Parfois frappe est 1 ou 2 (peut-être 20 fois au total) et hors d'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 documents qui vont jusqu'à environ 10. Les lectures sont toujours 2 et d'écriture sont toujours 0.

Était-ce utile?

La solution

La première chose est que je ferais ce paramètre configurable afin que vous puissiez tester différentes valeurs sans compilation. La prochaine chose est de regarder la durée de votre lot. Si votre heureux avec les performances ne changent pas. Si votre pas satisfait de la performance, essayez et augmenter ou diminuer le réglage pour voir comment il se comporte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top